2

我正在使用 jQuery 鼠标滚轮插件来允许浏览器将上下滚动视为左右滚动。代码很简单:

$('body').bind('mousewheel', function(event, delta) {
     this.scrollLeft -= (delta * 5);
});

您可以在水平滚动页面上测试此功能:http: //jsfiddle.net/Ema2B/13/

这在 chrome 中效果很好。向下滚动可向右滚动内容窗格。如果你把它带进 Firefox,它就不起作用。我进行了一些测试,firefox 确实看到了正确的 delta 值,但由于某种原因它不理解scrollLeft 。我设置了一个简单的测试来验证这一点:

$("a.logo").on("click", function(){
      $(body).scrollLeft(300);
});

同样,这在 chrome 中效果很好,但在 Firefox 中效果不佳。为什么Firefox不允许scrollLeft?

注意:Overflow:hidden 设置为 body 以禁用滚动条。在 chrome 和 firefox 中测试小提琴以查看。

4

1 回答 1

8

为了让它在 Firefox 上运行,选择器除了 body 之外还必须有 $(“html”)。请参阅下面的片段:

$("html, body").mousewheel(function(event, delta) {
    this.scrollLeft -= (delta * 30);
});
于 2013-08-01T21:46:08.713 回答