首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >指针事件IE11/ Surface

指针事件IE11/ Surface
EN

Stack Overflow用户
提问于 2014-10-06 14:11:33
回答 2查看 2K关注 0票数 1

在平板电脑表面处理触摸/指针事件的最佳方法是什么?我觉得它的行为很令人困惑。我编写了一个脚本,它只设置所有事件处理程序,以了解事件是如何触发的(设置本机事件处理程序,对UI使用jQuery ):

代码语言:javascript
复制
$.each([
    "touchstart","touchmove","touchend",
    "mousedown","mousemove","mouseup",
    "pointerdown","pointermove","pointerup",
    "MSPointerDown","MSPointerMove","MSPointerUp"
], function(i,eventname) {

    tester.addEventListener(this, function(e) {
        msg(eventname,e);
        if ($("#prevent").is(":checked")) {
            e.preventDefault();
        }
        if ($("#stop").is(":checked")) {
            e.stopPropagation();
        }
        if ($("#stopimmediate").is(":checked")) {
            e.stopImmediatePropagation();
        }

    }, false);
});

使用鼠标间隔或桌面IE11,一切都很好。所有三个事件(鼠标、指针、MSPointer)都按预期顺序触发:向下、移动、向上。

但是,当我使用屏幕时

  • 一开始,一个指针移动,然后指针向下。在屏幕上,一个矩形出现在我的手指周围。
  • 重复的移动事件正在触发,而不是移动我的手指。
  • 当我移动我的手指时,不再发生任何事件
  • 移除手指时的尾端事件

我做错了什么?调用preventDefault、stopPropagation或stopImmediatePropagation不会更改此行为。设置css指针-事件:无;禁用所有事件。

完整的代码脚本

EN

回答 2

Stack Overflow用户

发布于 2014-10-08 22:17:41

当用户用手指或触控笔拖曳屏幕时,您需要使用触动 CSS属性来防止浏览器的pan和缩放行为。

例如:

代码语言:javascript
复制
#prevent, #stop, #stopimmediate {
    touch-action: none;
}
票数 1
EN

Stack Overflow用户

发布于 2014-10-07 20:45:11

尝试一下我的触摸手势抽象库,DeepTissue。IE的触摸模型非常简单,因为指针事件将所有输入模式抽象为一个公共API。Chrome正在使事情变得复杂,但这是另一个故事:)。

你真的不想与所有的事件挂钩。我明白这会让人困惑。所以我才写了“深奥”。它使您不必编写所有管道代码,并选择最佳选项和挂钩到该事件集。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26218146

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档