需要 d3 刷才能在触摸设备上工作
Need d3 brush to NOT work on touch devices
我正在根据 Mike Bostock's code here.
实现 d3 的画笔行为
jsfiddle version
我希望画笔仅适用于鼠标事件,而不适用于触摸事件。我试过这个:
function brushended() {
if (d3.event.sourceEvent && d3.event.sourceEvent.type != "mouseup") return;
// Code for zooming
// ...
}
Touch 现在可以创建画笔矩形,但不会做任何进一步的操作。所以,我的objective就完成了一半。这就是我想要的:在触摸设备上,画笔应该被完全忽略并且触摸应该执行它的默认行为(例如 touchmove 用于滚动,两指用于缩放)。
为您的 brush
添加过滤器:
var brush = d3.brush().filter(() => event instanceof MouseEvent).on("end", brushended)
这只会激活 MouseEvent
的画笔并忽略 TouchEvent
我正在根据 Mike Bostock's code here.
实现 d3 的画笔行为
jsfiddle version
我希望画笔仅适用于鼠标事件,而不适用于触摸事件。我试过这个:
function brushended() {
if (d3.event.sourceEvent && d3.event.sourceEvent.type != "mouseup") return;
// Code for zooming
// ...
}
Touch 现在可以创建画笔矩形,但不会做任何进一步的操作。所以,我的objective就完成了一半。这就是我想要的:在触摸设备上,画笔应该被完全忽略并且触摸应该执行它的默认行为(例如 touchmove 用于滚动,两指用于缩放)。
为您的 brush
添加过滤器:
var brush = d3.brush().filter(() => event instanceof MouseEvent).on("end", brushended)
这只会激活 MouseEvent
的画笔并忽略 TouchEvent