使用以下代码:
(function($){
$(window).on('scroll', function(){
var scroll_top = $(document).scrollTop();
if (scroll_top > 50 && scroll_top < 100) {
console.log(scroll_top);
}
});
})(jQuery)
查看控制台会显示50到50之间的数字范围。我按照预期向上和向下滚动100。
但是,我需要一种方法来记录50和50之间的每个数字。 100我正在滚动。因此,如果我在55停止,它将记录51,52,53,54,55。
据我所知,这是因为浏览器运行javascript并以不同的速度呈现页面,但它是否可能呢?
答案 0 :(得分:0)
var scroll_pos_at_mousedown;
var aa = function(){
$(window).on('scroll mouseup mousedown', function(e){
var scroll_top = $(document).scrollTop();
if(e.type == 'mousedown') {
var scroll_top1 = $(document).scrollTop();
if(scroll_top1 <= 50) {
scroll_pos_at_mousedown = 50;
} else if(scroll_top1 > 50 || scroll_top1 <= 500) {
scroll_pos_at_mousedown = scroll_top1;
} else {
scroll_pos_at_mousedown = 500;
}
console.log("scroll_top is "+scroll_top1);
}
console.log("current_scroll_top is " + scroll_pos_at_mousedown);
if (scroll_top > 50 && scroll_top < 500) {
if(e.type == "mouseup") {
var scroll_pos_at_mouseup = $(document).scrollTop();
console.log('scroll_pos_at_mouseup is '+scroll_pos_at_mouseup);
if(scroll_pos_at_mousedown<=500) {
for(i=scroll_pos_at_mousedown;i<=scroll_pos_at_mouseup;i++)
console.log(i);
}else {
for(i=scroll_pos_at_mouseup;i<=500;i++)
console.log(i);
}
}
}
});
};aa();
我写过这个函数,记住事件mousedown和mouseup。您还可以添加keyup和keydown事件,并将其添加到向上和向下箭头keyCode。希望这会有所帮助:)