首页 热点资讯 义务教育 高等教育 出国留学 考研考公

js如何在页面滚动到一定位置时触发事件?

发布网友 发布时间:2022-04-23 04:23

我来回答

2个回答

热心网友 时间:2022-04-20 02:16

要实现这样的效果你需要使用到 滚动条事件 以及 元素在文档中的绝对定位。

比如我加载了100条微博,第一百条微博这个块级元素为 myBlock , 使用递归往上寻找父元素的方法求得myBlock在文档中的绝对位置:

function getTop(e)
{
var offset=e.offsetTop;
if(e.offsetParent!=null) //只要还有父元素,也就是当前元素不是根节点就继续往上累计元素的高度
offset+=getTop(e.offsetParent);
return offset;
}
var myBlockTop = getTop(myBlock);

获得了第100条微博的绝对高度后注册滚动条事件:window.addEventListener("scroll",function(){
if(document.body.scrollTop + (document.body.clientHeight || window.innerHTML) >= myBlockTop){
//当当前可视部分底部到达第100条微博的高度坐标时,进入这个if块
}
}

大概就这么实现,希望对您能有帮助

//----------------------------------------------

IE9以下对W3C标准支持得异常惨烈好像不支持那个window.addEventListener()得使用window.attachEvent('onscroll',function(){.......................});

反正思路是这样,你自己可以试试

热心网友 时间:2022-04-20 03:34

一般是用屏幕高和页面高做计算得出目前位置的,不需要标志点的,用Jquery的话好像还有插件干这种事。追问其实我的需求没有那么复杂,就是比如我先加载了100条数据,然后在这100条数据的后面有一个标记,等到这个标记被显示的时候(也就是滚动到了这里),触发事件,这时候去读取剩下100条数据。
多谢了!我去找找插件

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com