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の値に変更を加えた場合、ズーム操作のインスタンスが戻り値となる。 |