📅  最后修改于: 2023-12-03 14:54:47.171000             🧑  作者: Mango
本文介绍如何使用JavaScript监听文档高度的变化。
scroll
事件可以通过监听scroll
事件来获取文档高度的变化。
window.addEventListener('scroll', function() {
var documentHeight = Math.max(
document.body.scrollHeight, document.documentElement.scrollHeight,
document.body.offsetHeight, document.documentElement.offsetHeight,
document.body.clientHeight, document.documentElement.clientHeight
);
console.log('文档高度:', documentHeight);
});
这里使用window.addEventListener
来添加scroll
事件的监听器。在每次滚动时,通过document
对象的不同属性(scrollHeight
、offsetHeight
和clientHeight
)获取文档的高度,并选择其中的最大值作为文档高度。
MutationObserver
监测DOM变化除了scroll
事件,还可以使用MutationObserver
监测DOM的变化。
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
if (mutation.type === 'childList' || mutation.type === 'subtree') {
// DOM发生变化时的处理逻辑
var documentHeight = Math.max(
document.body.scrollHeight, document.documentElement.scrollHeight,
document.body.offsetHeight, document.documentElement.offsetHeight,
document.body.clientHeight, document.documentElement.clientHeight
);
console.log('文档高度:', documentHeight);
}
});
});
observer.observe(document, {
childList: true,
subtree: true
});
这里创建了一个MutationObserver
实例,通过传入一个回调函数来处理DOM发生变化的情况。在回调函数中,判断mutation.type
为childList
或subtree
时,表示DOM发生了变化。然后可以通过之前介绍的方法来获取文档高度。
通过scroll
事件或MutationObserver
可以方便地监听文档高度的变化。根据需求选择合适的方法,以实现对文档高度的监测与处理。