簡體   English   中英

d3覆蓋對象mousedown事件處理

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM