万能的 V2,有给 windows8 触摸屏开发 js touch 事件的高手请进

2015-05-07 10:58:53 +08:00
 del1214

在手机上处理正常的touchstart,touchmove,touchend事件,在windows8触摸屏上就不行了,会触发整个网页的上下滚动(touchmove中已经event.preventDefault())不再触发touchmove事件

请问如何禁止在目标dom上手指上下滑动时页面滚动?

代码如下

var canvas = $('#canvas');
canvas.on('touchstart', onTouchStart);
$(document).on('touchend', onTouchEnd);

function onTouchStart(event) {
    event.preventDefault();
    //do something
    canvas.on('touchmove', onTouch);
}

function onTouchMove(event) {
    //手机上正常阻止浏览器滑动的代码,在win8触摸屏上失效了
    event.preventDefault && event.preventDefault();
    //do something
}

function onTouchEnd(event) {
    event.preventDefault();
    canvas.off('touchend', onTouchMove);
}
2617 次点击
所在节点    问与答
3 条回复
del1214
2015-05-07 11:22:24 +08:00
自己先顶一下
forte
2015-05-07 12:18:32 +08:00
CSS touch action: none

另外IE是用 pointer events
del1214
2015-05-07 12:55:51 +08:00
@forte oh my god ,thank u
这个问题我解决了好久都没找到问题的根源,谢谢啦

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/189130

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX