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