V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
del1214
V2EX  ›  问与答

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

  •  
  •   del1214 · 2015-05-07 10:58:53 +08:00 · 2377 次点击
    这是一个创建于 3248 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在手机上处理正常的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);
    }
    
    3 条回复    2015-05-07 12:55:51 +08:00
    del1214
        1
    del1214  
    OP
       2015-05-07 11:22:24 +08:00
    自己先顶一下
    forte
        2
    forte  
       2015-05-07 12:18:32 +08:00 via iPhone   ❤️ 1
    CSS touch action: none

    另外IE是用 pointer events
    del1214
        3
    del1214  
    OP
       2015-05-07 12:55:51 +08:00
    @forte oh my god ,thank u
    这个问题我解决了好久都没找到问题的根源,谢谢啦
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5417 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 08:42 · PVG 16:42 · LAX 01:42 · JFK 04:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.