javascript - 鼠标滚轮在 Firefox 中不起作用

标签 javascript jquery scroll mousewheel

我一直在试图弄清楚为什么我的 smoothscroll 函数在 Firefox 中不起作用?它在其他浏览器(如 Chrome、Microsoft Edge)中运行良好。有人可以帮我吗?请检查这支笔:https://codepen.io/anon/pen/oWPaNx

function smoothScroll(time, distance) {
    var $window = $(window);
    var scrollTime = time;
    var scrollDistance = distance;

    $window.on("wheel mousewheel DOMMouseScroll", function (event) {

        event.preventDefault();
        var delta = event.originalEvent.wheelDelta / 80 || -event.originalEvent.detail / 3;

        var scrollTop = $window.scrollTop();
        var finalScroll = scrollTop - parseInt(delta * scrollDistance);

        TweenMax.to($window, scrollTime, {
            scrollTo: {
                y: finalScroll,
                autoKill: true
            },
            ease: Power4.easeOut,
            overwrite: 5
        });

    });
}

最佳答案

Firefox 中的滚动行为对我来说有点奇怪。

这是我找到的一个讨论mousewheel event is not triggering in firefox browser

function smoothScroll(time, distance) {

  // added this
  var isFirefox = (/Firefox/i.test(navigator.userAgent));
  var scrollEvent = isFirefox ? "DOMMouseScroll" : "mousewheel"

  var $window = $(window);
  var scrollTime = time;
  var scrollDistance = distance;

  // insert scrollEvent var
  $window.on(scrollEvent, function(event) {

    // added this (check if firefox)
    if (!isFirefox) {
      event.preventDefault();
    }

    var delta = event.originalEvent.wheelDelta / 80 || -event.originalEvent.detail / 3;

    var scrollTop = $window.scrollTop();
    var finalScroll = scrollTop - parseInt(delta * scrollDistance);

    // changed window
    TweenMax.to(window, scrollTime, {
      scrollTo: {
        y: finalScroll,
        autoKill: true
      },
      ease: Power4.easeOut,
      overwrite: 5
    });

  });
}

smoothScroll(1.1, 110);

关于javascript - 鼠标滚轮在 Firefox 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44040676/

相关文章:

jquery - 绝对 div 停止重叠 - 让它们相对移动

javascript - 修改 Angular 指令中的 ng-repeat 模型

javascript - 使用 javascript 提取支持的 HTML 或 X11 颜色名称及其 RGB 值的列表

javascript - 使用javascript四舍五入到数百

javascript - jQuery 包装所有标题和下面的元素直到下一个标题

scroll - LibGdx 如何将 ScrollPane 滚动条位置固定在特定位置?

javascript - JS : Using an argument passed to a function directly as a parameter of a nested function

javascript - 语义 UI 搜索选择在模态负载上不会保持折叠/不集中状态

javascript - 防止滚动冒泡

jquery-ui - Jquery UI 1.10.x 对话框在大 body 高度上的拖动问题