看看this site。向下滚动时,它会自动加载更多页面。假设我有一个在document.load上运行的事件。当你向下滚动并有更多的东西进入视野时,有没有办法让它再次这样做?
值得一提的是,我正在尝试设计一种方法来捕获所有这样的实例,而不仅仅是我提到的特定网站,当它进行无限滚动时可能会有一些东西可以锁定。
答案 0 :(得分:1)
已弃用的DOM3 Mutation Events与DOMSubtreeModified
一样,只要发生特定的突变事件就会触发。出于性能和兼容性的原因,MDN强烈反对使用它们,但它们确实存在。我也相信他们不会提供有关种突变发生的信息或任何类型的比较之前/之后的信息。
有DOM4 Mutation Observers的W3C草案,目前可能会在某些浏览器中实现。我知道它至少在Chrome中实现,使用WebKitMutationObserver
就像这样:
var observer = new WebKitMutationObserver(function(mutations, observer) {
// fired when a mutation occurs
console.log(mutations, observer);
// ...
});
// define what element should be observed
// and what types of mutations trigger the callback
observer.observe(document, {
subtree: true,
attributes: true
//...
});
草稿中有mutation properties的完整列表(向下滚动到绿色框)。
答案 1 :(得分:0)
您所描述的行为通常被称为“infinite scrolling”。
编辑:我上面的回答并没有真正回答你的问题。
我能想到的最接近真正通用的处理方法,即使你的代码不是向DOM添加元素,也是使用DOM Level 3 API Mutation events,但它们现已弃用不应该使用。
DOM级别4中的mutation observers提案正在进行中,但这些尚未标准化。但是,take a look at this article用于示例实现。