Подскажите COMPADRES, где-то налажал.
Задача: С интервалом в 20 секунд спускаться вниз на document.documentElement.clientHeight, далее при достижении конца страницы, с временной задержкой, переходить обратно в топ.
Пока имею следующие проблемы и следующий код
В отладчике все работает, а без него, просто открыв ссылку, прокручивает только раз.
Так же, после интервала ставлю условие , если достигли футера то делаем скролл в топ. Он так же не происходит
window.onload = function down() {
var idInt = setInterval(function() {
for (j = 0; j < 6; j++) {
window.scrollBy({
top : document.documentElement.clientHeight,
left : 0,
behavior : 'smooth'
});
}
clearInterval(idInt);
}, 1000);
if (window.scrollTop == document.height - window.height) {
window.scrollBy({
top : 0,
left : 0,
behavior : 'smooth'
});
}
}
Вот что получилось:
function down() {
var idInt = setInterval(function() {
window.scrollBy({
top: document.documentElement.clientHeight,
left: 0,
behavior: 'smooth'
});
if (window.pageYOffset + window.innerHeight == getDocHeight()) {
window.scrollTo(0, 0);
clearInterval(idInt);
}
}, 20000)};
В интервале указываешь нужный интервал с которым будет скролить на высоту экрана.
Функция получения высоты страницы (взята от сюда: https://stackoverflow.com/a/10795797/8978945) :
function getDocHeight() {
return Math.max(
document.body.scrollHeight, document.documentElement.scrollHeight,
document.body.offsetHeight, document.documentElement.offsetHeight,
document.body.clientHeight, document.documentElement.clientHeight
);
}
Благодарю что помогли и подсказали. С прокруткой в конец страницы. С прокруткой вверх нашел решение тут https://stackoverflow.com/questions/37934091/why-is-the-document-height-equal-to-window-inner-height-pageyoffset
В итоге получилось так
var windowHeight = "innerHeight" in window ? window.innerHeight : document.documentElement.offsetHeight;
var body = document.body, html = document.documentElement;
var docHeight = Math.max(body.scrollHeight, body.offsetHeight,
html.clientHeight, html.scrollHeight, html.offsetHeight);
var windowBottom = windowHeight + window.pageYOffset;
window.onload = function down() {
var idInt = setInterval(function() {
window.scrollBy({
top : document.documentElement.clientHeight,
left : 0,
behavior : 'smooth'
});
if (pageYOffset >= docHeight - window.innerHeight - 1) {
window.scrollTo(0, 0);
clearInterval(idInt);
}
}, 1000)
};
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
На сайте несколько dropdown селекторов, каждое из выбранных селекторов сохроняю в сессиюТак же нужно менять background самого селектора у которого...
Не могу разобраться в рендеринг, застрял в авторизации, что как пишу я так не рендерит, выходит ошибка
Есть 2 инпута, в них вводятся значения, при верном значении input получает disabledНужна, проверка в реальном времени, если оба disabled, происходило...