gpt4 book ai didi

javascript - 带有 Firefox 的 Surface Pro 3 - 具有单点触摸触发触摸/鼠标事件而不是滚轮事件

转载 作者:数据小太阳 更新时间:2023-10-29 05:38:26 25 4
gpt4 key购买 nike

仅在带有 Firefox 的 Surface Pro 3 上:

当用单指在元素上做出滑动手势时,浏览器将触发 wheel 事件,而不是 touchmovemousemove 事件。您如何停止滚轮行为,并让单个手指始终被视为触摸/鼠标移动?

所以我想将单个手指滑动视为一系列 mousemovetouchmove 而不是 wheel 事件。如果在此元素上滑动,我根本不希望单指滑动来滚动页面。这在 Chrome 和 IE11 中很容易做到。这在 Firefox 中似乎是不可能的。 Current 我认为这是一个错误,但我可能遗漏了一些东西。

这是一个简单的例子:

http://codepen.io/simonsarris/pen/PwbdRZ

var can = document.getElementById('can');

can.addEventListener('mousemove', function(e) {
// Will never happen on the Surface Pro 3 in Firefox
// Will happen in IE11 though
console.log('mouseMove')
});

can.addEventListener('touchmove', function(e) {
// Will never happen on the Surface Pro 3 in Firefox
// Will happen in Chrome though
console.log('touchMove')
});

// Stops the window from scrolling in firefox when you swipe on the element
// But stopping this does not allow the single touch gesture to register as mousemove or touchmove events
can.addEventListener('wheel', function(e) {
console.log('wheel')
e.preventDefault();
});


// consider also the 'DOMMouseScroll' event, though preventing this event will not stop firefox from panning the page.

因为我阻止了 wheel 中的默认设置,所以当单指向上或向下滑动时停止滚动页面

如果您在红色框内滑动,Firefox 中的窗口滚动将停止,但不会触发 mousemove 或 touchmove 事件。 (但是,如果您水平滑动而不是垂直滑动,mousemove 将会触发)

最佳答案

触摸事件目前在桌面版 Firefox (36.0.4) 中被禁用,尽管它们可以在 Metro 模式下运行 Firefox 或通过 dom.w3c_touch_events.enabled 设置明确启用它们.参见 the MDN article on Touch events获取更多信息。

关于javascript - 带有 Firefox 的 Surface Pro 3 - 具有单点触摸触发触摸/鼠标事件而不是滚轮事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27786658/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com