【发布时间】:2018-02-13 06:02:01
【问题描述】:
我正在开发一个网络应用程序,该应用程序需要防止使用手写笔滚动,但仍允许在用手指滑动屏幕时滚动。
我遇到的问题是只有 pointerstart 事件可以通过 e.pointerType 区分手指触摸和手写笔触摸。
但似乎无法从指针向下停止滚动,需要使用无法检测手指和手写笔/笔之间差异的 touchstart。
在 Google Keep 上,这是通过设置 css touch-events:none; 来实现的。在画布上,如果是手指触摸,则使用指针事件生成模拟平移,但这看起来很hacky。
我要实现的示例代码
canvasElement.addEventlistener("pointerdown", function(event){
if(event.pointerType === "pen"){
// Disable scroll - This doesn't work
event.preventDefault();
event.stopPropagation();
// Start drawing stuff
startDrawing(...);
} else {
// Is a touch event do nothing, let it scroll naturally
}
});
在不模拟滚动的情况下,这是否可行?
【问题讨论】:
标签: javascript mobile touch event-listener pointer-events