Javascript 如何在jquery中计算鼠标滚轮滚动
如何在jquery/javascript中计算鼠标滚动? 与初始值0类似,向下滚动++1,向上滚动--1。 而不是-1。必须是积极的 如果向下滚动2次,则值将为2,然后向上滚动一次,则值将为1Javascript 如何在jquery中计算鼠标滚轮滚动,javascript,jquery,html,css,Javascript,Jquery,Html,Css,如何在jquery/javascript中计算鼠标滚动? 与初始值0类似,向下滚动++1,向上滚动--1。 而不是-1。必须是积极的 如果向下滚动2次,则值将为2,然后向上滚动一次,则值将为1 scrollcount=0; $(document).ready(function(){ $("div").scroll(function(){ $("span").text(scrollcount+=1); }); }); 该代码比较滚动条的位置scrollPos显示向下移动滚动条的像
scrollcount=0;
$(document).ready(function(){
$("div").scroll(function(){
$("span").text(scrollcount+=1);
});
});
该代码比较滚动条的位置scrollPos
显示向下移动滚动条的像素数,并使用值0
初始化,因为它从顶部开始
滚动页面时,scrollPosCur
将首先保存滚动条的当前位置。之后,我们比较值的变化情况:
如果当前值大于保存的值,则表示滚动条已向下移动,因此您的计数器将增加1
。
与此类似,当scrollPosCur
小于scrollPos
时,我们将计数器
递减1
为了保持代码正常工作,我们保存当前值,以便在将来的滚动事件中进行比较。以下是您的问题的可能解决方案
var scrollCount = 0,
latestScrollTop = 0,
doc = document.documentElement,
top = 0;
// Bind window scroll event
$(window).bind('scroll', function (e) {
top = (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0);
if (latestScrollTop < top) {
// Scroll down, increment value
scrollCount += 1;
} else {
// Scroll up, decrement value
scrollCount -= 1;
}
// Store latest scroll position for next position calculation
latestScrollTop = top;
});
var scrollCount=0,
latestScrollTop=0,
doc=document.documentElement,
top=0;
//绑定窗口滚动事件
$(窗口).bind('scroll',函数(e){
top=(window.pageYOffset | | doc.scrollTop)-(doc.clientTop | | 0);
如果(最晚滚动顶部<顶部){
//向下滚动,增加值
滚动计数+=1;
}否则{
//向上滚动,减小值
滚动计数-=1;
}
//为下一个位置计算存储最新的滚动位置
latestScrollTop=顶部;
});
这是怎么想的:(scrollPosCur>scrollPos)?@JasjeetSingh:最后确定了答案。谢谢,它对我有用@Mike Vranckx的答案也是有效的。你可以将这两个选项都向上投票并将你最喜欢的标记为“已批准”。这有一些有用的答案。新值将存储在滚动后的顶部?我说得对吗存储下一个位置计算的最新滚动位置要确定是向上滚动还是向下滚动,我们需要存储此值以供下次验证。滚动量所需的值为scrollCount
latestScrollTop
提供了在浏览器中滚动的像素量scrollCount
是一个增量变量,是您要求的。
var scrollCount = 0,
latestScrollTop = 0,
doc = document.documentElement,
top = 0;
// Bind window scroll event
$(window).bind('scroll', function (e) {
top = (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0);
if (latestScrollTop < top) {
// Scroll down, increment value
scrollCount += 1;
} else {
// Scroll up, decrement value
scrollCount -= 1;
}
// Store latest scroll position for next position calculation
latestScrollTop = top;
});
$(window).scroll(function () {
if ($(this).scrollTop() > 100) {
$('.scrollToTop').fadeIn();
} else {
$('.scrollToTop').fadeOut();
}
});
//Click event to scroll to top
$('.scrollToTop').click(function () {
$('html, body').animate({ scrollTop: 0 }, 800);
return false;
});