我正在编写一个页面,其中用户第一次滚动时,它实际上并没有向下滚动页面,而是添加了一个带有转换的类。
我想检测用户何时向下滚动,因为如果他向上滚动,我希望它执行其他操作。
我发现的所有方法都是基于定义当前的body ScrollTop,然后在页面滚动后与body的scrollTop进行比较,定义方向,但由于页面实际上并没有滚动,所以body的scrollTop()不会'改变。
animationIsDone = false;
function preventScroll(e) {
e.preventDefault();
e.stopPropagation();
}
$('body').on('mousewheel', function(e) {
if (animationIsDone === false) {
$("#main-header").removeClass("yellow-overlay").addClass("yellow-overlay-darker");
$(".site-info").first().addClass("is-description-visible");
preventScroll(e);
setTimeout(function() {
animationIsDone = true;
}, 1000);
}
});
这就是我所带来的,但这样我滚动的方向并不重要,它会触发事件
The mousewheel
事件很快就会过时。你应该使用wheel
事件代替。
这也可以轻松地允许您在没有滚动条的情况下垂直和/或水平滚动方向。
该事件在当前所有主要浏览器中都得到支持,并且在很长的将来应该仍然是标准。
这是一个演示:
window.addEventListener('wheel', function(event)
{
if (event.deltaY < 0)
{
console.log('scrolling up');
document.getElementById('status').textContent= 'scrolling up';
}
else if (event.deltaY > 0)
{
console.log('scrolling down');
document.getElementById('status').textContent= 'scrolling down';
}
});
<div id="status"></div>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)