Обнаружьте изменение высоты документа

Я пытаюсь обнаружить когда мой document изменения высоты. После того как это делает, я должен выполнить несколько функций, чтобы помочь организовать мой макет страницы.

Я не ищу window.onresize. Мне нужен весь документ, который больше, чем окно.

Как я наблюдаю это изменение?

58
задан 14 February 2013 в 06:16

1 ответ

Я использую решение @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);

можно также добавить минимальное изменение и много других вещей... Но это работает на меня

0
ответ дан 1 November 2019 в 14:16

Другие вопросы по тегам:

Похожие вопросы: