Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 鼠标滚轮在firefox中不起作用_Javascript_Jquery_Scroll_Mousewheel - Fatal编程技术网

Javascript 鼠标滚轮在firefox中不起作用

Javascript 鼠标滚轮在firefox中不起作用,javascript,jquery,scroll,mousewheel,Javascript,Jquery,Scroll,Mousewheel,我一直在想为什么我的smoothscroll功能在firefox中不起作用?它在其他浏览器如chrome、MicrosoftEdge中运行良好。有人能帮我吗。请检查这支钢笔: firefox中的滚动行为对我来说有点奇怪 这是我发现的一个讨论 你的代码可以工作。你忘了添加这个插件:@Phil谢谢,但它在firefox中仍然不起作用。请检查更新的钢笔,谢谢您的回答。这确实管用,但它相当容易出错,但它确实回答了这个问题。 function smoothScroll(time, distance) {

我一直在想为什么我的smoothscroll功能在firefox中不起作用?它在其他浏览器如chrome、MicrosoftEdge中运行良好。有人能帮我吗。请检查这支钢笔:


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

这是我发现的一个讨论


你的代码可以工作。你忘了添加这个插件:@Phil谢谢,但它在firefox中仍然不起作用。请检查更新的钢笔,谢谢您的回答。这确实管用,但它相当容易出错,但它确实回答了这个问题。
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
        });

    });
}
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);