zoom.translate - ズーム操作におけるtranslateの値を取得、変更する

投稿日: / 更新日:

d3.jsのzoom.translateは、現在のズーム操作におけるtranslateの値を取得、変更するためのプロパティです。値はX方向、Y方向、2つの値を持った配列リテラルとなります。

サンプルコード

<img src="/image.png">
// ズーム操作のインスタンスを作成
var zoom = d3.behavior.zoom() ;

// ズーム操作に対応するイベントリスナーを指定する
zoom.on( "zoom", function() {
	// 処理内容
} ) ;

// img要素に対して、call()メソッドでズーム操作を適用
d3.select( "img" ).call( zoom ) ;

// translateの値を取得
var translate = zoom.translate() ;

// translateの値を変更 (X方向=100、Y方向=500)
zoom.translate( [ 100, 500 ] ) ;

デモ

下のボタンを押すと、zoom.translateを使って、translateの値を取得したり、変更します。取得するtranslate値は別途、小数点以下を切り捨てています。また、画像下に表示しているtranslate値はズーム操作中のものなのに対して、取得して表示するtranslate値はズーム操作が終わった後の値です。そのため、タイムラグで値がズレることがあります。これは本質に関わる部分ではないのでご了承下さい。

構文

translate || instance = zoom.translate( [ translate ] )

引数

項目説明
translate省略可。省略した場合は値の変更ではなく、値の取得となる。引数に、第1要素がX方向、第2要素がY方向を示す数値で構成された配列リテラル(例:[100, 200])を指定すると、ズーム操作のtranslateの値を変更する。この変更は、対象要素を変更するものではなく、ズーム操作のインスタンス内で管理する、translateの値を変更するだけなのでご注意下さい。

戻り値

項目説明
translate引数を指定しなかった場合、translateの値(配列)が戻り値となる。
instance引数を指定して、translateの値に変更を加えた場合、ズーム操作のインスタンスが戻り値となる。