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

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

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

    在手机上处理正常的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
        1
    del1214   2015-05-07 11:22:24 +08:00
    自己先顶一下
        2
    forte   2015-05-07 12:18:32 +08:00 via iPhone   ♥ 1
    CSS touch action: none

    另外IE是用 pointer events
        3
    del1214   2015-05-07 12:55:51 +08:00
    @forte oh my god ,thank u
    这个问题我解决了好久都没找到问题的根源,谢谢啦
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1324 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 71ms · UTC 00:12 · PVG 08:12 · LAX 16:12 · JFK 19:12
    ♥ Do have faith in what you're doing.