私は同じsvgでsvgのd3.jsズーム動作を実装しています。マウスカーソルの位置に従うツールヒントの位置を設定できるように、マウス座標をキャプチャする必要もあります。d3ズームの動作がmousemoveイベントによって上書きされる
問題は、私の 'mousemove'イベントがd3.jsズーム動作をオーバーライドしていることです。 'mousemove'イベントを追加すると、ズーム動作が停止します。
「mousemove」イベントまたは「zoom」イベントがありますが、両方ではありません。これを回避する方法はありますか?ありがとう。
// bind zoom behavior
selection_svg.call(
d3.behavior.zoom()
.translate([0, 0])
.scale(1)
.scaleExtent([1, 14])
.on('zoom',()=>{ selection_plotArea.attr('transform', 'translate('+d3.event.translate+')scale('+d3.event.scale+')'); })
);
// tool tip coordinate
const toolTipNode = selection_toolTip.node();
toolTipNode.style.position = 'absolute';
selection_svg.node().addEventListener('mousemove',function(evt){
const coord_client = {
x:evt.clientX,
y:evt.clientY,
}
toolTipNode.style.left = `${coord_client.x}px`;
toolTipNode.style.top = `${coord_client.y}px`;
}, false);
は私がいじるために、この問題のためのコードを追加しました: https://jsfiddle.net/apollotang/rt9t1vdj/
問題を表すjsfiddleを追加できますか? – Mehraban
@Saeed、私はここにフィリピンを追加しました:https://jsfiddle.net/apollotang/rt9t1vdj/ – apollo