[英]d3 overlay object mousedown event handling
我最近正在使用d3.js制作網絡拓撲
它具有平移和縮放,對象拖動,線條繪制功能。
我現在已經實現了所有功能,但是有一個問題。
當我在主svg上畫線時,畫得很好。
但是,如果我要開始在對象(矩形或某些圖像)上繪圖,則無法正常工作。
因為對象拖動功能會吞下“ mousedown”事件。
[Main svg]
mainSvg
.on('mousedown', function mouseDown() {
// make object(line)
})
.on('mousemove', function mouseMove() {
// drawing line
// update line's x2, y2 coordinates
})
.on('mouseup', () => {
// drawing end
});
[Object]
.call(d3.drag()
.on('start', function dragStart() {
// make active state
})
.on('drag', function dragging(d) {
// update object's x,y coordinates
})
因此,如果我打開“繪制”模式,是否可以將“ mousedown”事件調度到主svg?
在繪制模式下,我要繪制線而沒有任何中斷。(例如MS“ PowerPoint”)
有什么解決方案還是我需要更改事件處理?
感謝您閱讀我的問題。
我解決了自己。
我的解決方案是
d3.selectAll('objects').style('pointer-events', 'none);
在繪圖模式下,我關閉了所有可單擊的對象。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.