繁体   English   中英

Microsoft Edge上水平鼠标滚动deltaX反转,如何检测?

[英]horizontal mouse scroll deltaX reversed on Microsoft Edge, how to detect?

https://jsfiddle.net/swek0epj/

document.addEventListener('wheel', function(e) {
  alert(e.deltaX);
})

我通过在各种浏览器中向右推动鼠标滚动来测试以上代码,结果是:

Chrome版本48:25

Firefox 44版本: 0.75

Internet Explorer版本11: 14.24

Microsoft Edge版本13: -21.36

问题是,我需要检测侧面滚动导航的方向,并且Edge上的方向相反(为负)

是否有任何建议使用不使用过时的MouseWheelEvent(不带有wheelDeltaX)或MouseScrollEvent的跨浏览器?

https://jsfiddle.net/swek0epj/3/

一个修补程序,用于检测Microsoft Edge浏览器并反转符号:

document.addEventListener('wheel', function(e) {
  deltaX = e.deltaX;
  // Revert the sign if Microsoft Edge. When they fix it, remove:
  if (navigator.userAgent.match(/Edge\/\d+/)) {
    deltaX = -deltaX;
  }
  if (deltaX > 0) {
    // right horizontal scroll
    ...
  }
  if (deltaX < 0) {
    // left horizontal scroll
    ...
  }
})

请注意,这不是一个可靠的解决方案。 即,如果Microsoft Edge修复了该错误,则必须删除第一个if块以进行符号还原。

浏览器检测来自: 使用javascript检测Microsoft的edge或spartan

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM