【发布时间】:2018-09-19 15:36:47
【问题描述】:
我正在尝试使用 javascript 获取滚动方向。
我的代码适用于除 Firefox 之外的所有浏览器。
下面是方向的代码。
var wheelDirection = function(evt){
if (!evt) evt = event;
return (evt.detail<0) ? 1 : (evt.wheelDelta>0) ? 1 : -1;
};
var direction = wheelDirection();
下面是我的完整代码,我正在尝试使用 Greensock js 库对滚动进行一些鼠标滚轮缓动...它适用于除 Firefox 之外的所有浏览器,即使向上滚动,滚动也会不断向下...另外使用 feature.js 检测支持触摸的设备...我只是无法弄清楚问题是什么...请 - 没有 jQuery 解决方案。我想要纯 javascript...
if (feature.touch) {
//touch supported
} else {
//touch not supported
function domLoad() {
scrollTime = 0.6;
scrollDistance = 360;
function scroll(event) {
event.preventDefault();
var wheelDirection = function(evt){
if (!evt) evt = event;
return (evt.detail<0) ? 1 : (evt.wheelDelta>0) ? 1 : -1;
};
var direction = wheelDirection();
console.log(direction);
var scrollTop = window.pageYOffset;
var finalScroll = scrollTop - parseInt(direction*scrollDistance);
TweenMax.to(window, scrollTime, {
scrollTo : { y:finalScroll, easing:Sine.easeOut ,autoKill:true }, overwrite: 10
});
}
window.addEventListener("wheel", scroll);
};
window.addEventListener("DOMContentLoaded", domLoad);
};
【问题讨论】:
-
event.deltaY现在似乎可以解决问题了
标签: javascript firefox mousewheel