Я пытаюсь обнаружить когда мой document
изменения высоты. После того как это делает, я должен выполнить несколько функций, чтобы помочь организовать мой макет страницы.
Я не ищу window.onresize
. Мне нужен весь документ, который больше, чем окно.
Как я наблюдаю это изменение?
Я использую решение @vsync, как это. Я использую его для автоматической прокрутки на странице как Твиттер.
const scrollInterval = (timeInterval, retry, cb) => {
let tmpHeight = 0;
const myInterval = setInterval(() => {
console.log('interval');
if (retry++ > 3) {
clearInterval(this);
}
const change = document.body.clientHeight - tmpHeight;
tmpHeight = document.body.clientHeight;
if (change > 0) {
cb(change, (retry * timeInterval));
scrollBy(0, 10000);
}
retry = 0;
}, timeInterval);
return myInterval;
};
const onBodyChange = (change, timeout) => {
console.log(`document.body.clientHeight, changed: ${change}, after: ${timeout}`);
}
const createdInterval = scrollInterval(500, 3, onBodyChange);
// stop the scroller on some event
setTimeout(() => {
clearInterval(createdInterval);
}, 10000);
можно также добавить минимальное изменение и много других вещей... Но это работает на меня