autoscroll jquery с бесконечным циклом прокрутки

У меня есть страница, которую я хотел бы, чтобы она автоматически прокручивалась, как только загружается полная страница, прокручивается вниз и в основном автоматически переходит к началу страницы (по сути, загружая ту же страницу под ней), чтобы сделать ее бесконечной петля. У меня есть следующий скрипт, который делает это, но он ломается после нескольких прокруток вверх/вниз. Пока я использую jQuery, чтобы помочь. Я нашел этот фрагмент в другом сообщении StackOverflow, но не могу его найти.

function scroll(element, speed) {
        element.animate({ scrollTop: $(document).height() }, speed,'linear', function() {
                $(this).animate({ scrollTop: 0 }, 3000, scroll(element, 4000));
        });
}
setTimeout(function() {
    scroll($('html, body'), 900000)
}, 3000);

person Lazmeister    schedule 17.08.2017    source источник


Ответы (3)


Я смог решить это, используя более простой метод:

window.onload = function () {
    var Delay = $(document).height() * 65;
    var DelayBack = $(document).height() * 5;
    function animateBox() {
        $('html, body')
        .animate({scrollTop: $(document).height()}, Delay, 'linear')
        .animate({scrollTop: 0}, DelayBack, animateBox);
    }
    setInterval(animateBox, 100);
}
person Lazmeister    schedule 18.08.2017

Я чувствую, что ваша проблема связана с этой строкой...

$(this).animate({ scrollTop: 0 }, 3000, scroll(element, 4000));

Попробуйте изменить его на следующее, чтобы сделать его обратным вызовом, а не немедленным вызовом:

$(this).animate({ scrollTop: 0 }, 3000, function(){ scroll(element, 4000); });
person Taplar    schedule 17.08.2017

извлекать данные с помощью php и ajax, применять функцию прокрутки к событию окна

$(document).ready(function(){
    $(window).scroll(function(){
        var lastID = $('.load-more').attr('lastID');
        if ($(window).scrollTop() == $(document).height() - $(window).height() && lastID != 0){
            $.ajax({
                type:'POST',
                url:'getdata.php',
                data:'id='+lastID,
                beforeSend:function(html){
                    $('.load-more').show();
                },
                success:function(html){
                    $('.load-more').remove();
                    $('#postList').append(html);
                }
            });
        }
    });
});
person Pasunuti Anand    schedule 17.08.2017
comment
Это кажется более сложным, чем должно быть. Это просто простая html-страница с jquery. - person Lazmeister; 18.08.2017