Javascript 当用户滚动经过数组中的div时跟踪
是否有一种方法可以设置html元素数组。假设Javascript 当用户滚动经过数组中的div时跟踪,javascript,jquery,html,arrays,scroll,Javascript,Jquery,Html,Arrays,Scroll,是否有一种方法可以设置html元素数组。假设Section_1、Section_2和Section_3在所述阵列内。当用户向下滚动页面时,并且仅在向下滚动时,是否可以检查用户是否按该数组中指定的部分滚动?有点像 var readerLocation=150; 变量内容=['block_1'、'block_2'、'block_3']; 底部=$(窗口).height()+$(窗口).scrollTop(); 高度=$(文档).height(); //如果用户开始滚动,则发送事件 如果(底部>读卡
Section_1
、Section_2
和Section_3
在所述阵列内。当用户向下滚动页面时,并且仅在向下滚动时,是否可以检查用户是否按该数组中指定的部分滚动?有点像
var readerLocation=150;
变量内容=['block_1'、'block_2'、'block_3'];
底部=$(窗口).height()+$(窗口).scrollTop();
高度=$(文档).height();
//如果用户开始滚动,则发送事件
如果(底部>读卡器位置){
log('startedreading');
var i=0;
用于(内容中的块){
console.log(内容[i]);
//检查此处是否滚动到数组中的元素()
i++;
}
}
您可以做的是设置一个$(窗口).scroll()
事件
对于数组中的每个元素,您希望找到其在页面中的偏移量,并将其与当前的
$(窗口)进行比较。每当它经过第1节的offset().top
时,您就知道它在第1节,而尚未到达第2节。下面是一个代码示例,它将带您接近您想要的位置:
需要记住的几件事:
通过在数组foreach循环中指定条件来运行代码
确保跟踪变量,而不是动态应用代码
由于您使用的是jQuery,请充分利用$(窗口)。滚动以跟踪滚动事件
$(文档).ready(函数(){
var lastScrollTop=0,
block=['block_2','block_5','block_7'];
$(窗口)。滚动(功能(事件){
var st=$(this.scrollTop(),
block_2_offset=$('#'+block[0]).offset().top;
如果(st>lastScrollTop){
//低谷
block.forEach(函数(block,i){
//检查我们是否通过了向下滚动,然后做一些事情,修改条件以获得更专业的响应
if(st>=$('#'+content[i]).offset().top){
//做点什么
}
});
}
lastScrollTop=st;
});
});代码>
div{
填充底部:500px;
文本对齐:居中;
}
分区:第n个孩子(3){
背景颜色:蓝色;
}
分区:第n名儿童(6){
背景颜色:黄色;
}
分区:第n个孩子(8){
背景颜色:粉红色;
}
第一区
第2区
第3区
第4区
第5区
第6区
第7区
第8区
第9区
你的读者定位的目的是什么?我认为我没有把握,你觉得这是怎么回事?另外,忽略占位符文本。。。它是Slipsum。offset
是一个函数,因此需要offset()。top