0

我一直在使用brandon aarons mousewheel插件并且正在使用webkit浏览器但是它在firefox上不起作用。

这是brandon aaron的原始代码,在webkit上很棒

$('body').on('mousewheel', function(event, delta){
  this.scrollLeft -= (delta*30);
  event.preventDefault();
});

所以我切换到http://cobbweb.me/blog/2012/03/30/jquery-mousewheel-plugin-version-2/ 应该可以在firefox上工作,尝试了这个代码

$('body').on('mousewheel', function(event, delta, deltaX, deltaY){

  event.preventDefault();
}); 

我试图将 scrollLeft 放在那里,并用 deltaY 替换并 DOMMouseScroll 或 MozMousePixelScroll 但仍然无济于事。如何使这项工作绑定在鼠标滚轮上,以便我的页面在 Firefox 上水平滚动?

谢谢!

4

3 回答 3

1

您应该检查在 Firefox 中不工作的 body 上的 scrollLeft

他们通过更改$('body')...为来修复它$('html, body')...

于 2013-12-02T10:34:13.073 回答
0

您可以通过自己处理 DOM 事件(使用不使用插件)来解决此问题。

像这样:

$('body').on('mousewheel DOMMouseScroll MozMousePixelScroll', function(event, delta, deltaX, deltaY){
    event.preventDefault();
});

你可以在这里看到它的实际效果(在 Chrome 和 Firefox 中测试)。

但是,scrollLeft似乎scrollTop在 Firefox 中不起作用(在 jQuery 或基本 JavaScript 中)。看到这个小提琴(应该输出“5”;在 Chrome 上这样做,但在 Firefox 上吐出“0”)。

于 2012-09-18T00:25:26.643 回答
0

尝试:(1)事件'mousewheel',(2)函数(事件)和(3)使用event.deltaFactor * event.deltaX来检测滚动距离。

检查https://github.com/jquery/jquery-mousewheel,非常短的部分“获取滚动距离”。

于 2017-01-06T18:48:28.167 回答