JQuery выполняет действие на 90% вниз по странице - PullRequest
0 голосов
/ 22 марта 2011

У меня есть небольшой скрипт, который позволяет моим пользователям получать новые элементы без перезагрузки страницы или использования нумерации страниц.

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

Можно ли в любом случае сделать так, чтобы, если пользователь опустился на 90% вниз, функция запускалась?

Вот мой текущий сценарий.

<script type="text/javascript">
    alreadyloading = false;
    start = 20;
    stop = 30;

    $(window).scroll(function() {
        if ($('body').height() <= ($(window).height() + $(window).scrollTop())) {
            if (alreadyloading == false) {
                alreadyloading = true;
                $('.last').show();
                $.ajax({
                    type: "GET",
                    url: "/trophy-room/all/",
                    data: "start="+start+"&stop="+stop,
                    success: function(data) {
                        $(data).insertBefore('.last');
                        start = stop;
                        stop = stop + 10;
                        $('.last').hide();
                        alreadyloading = false;
                    }
                });
                // if you reach bottom, send 10 as begging and 20 as stop
                // load the data and insert before div last or something. [5:10]
            }
        }
    });
    </script>

Ответы [ 2 ]

4 голосов
/ 22 марта 2011

Супер просто.Просто кратно $('body').height() на 0,9.

<script type="text/javascript">
    alreadyloading = false;
    start = 20;
    stop = 30;

    $(window).scroll(function() {
        if (($(window).scrollTop + $(window).height()) >= ($('body').height() * 0.9)) {
            if (alreadyloading == false) {
                alreadyloading = true;
                $('.last').show();
                $.ajax({
                    type: "GET",
                    url: "/trophy-room/all/",
                    data: "start="+start+"&stop="+stop,
                    success: function(data) {
                        $(data).insertBefore('.last');
                        start = stop;
                        stop = stop + 10;
                        $('.last').hide();
                        alreadyloading = false;
                    }
                });
                // if you reach bottom, send 10 as begging and 20 as stop
                // load the data and insert before div last or something. [5:10]
            }
        }
    });
</script>
0 голосов
/ 22 марта 2011

Дох, бей меня к этому. но вот другое решение. Проверьте 'prg'.

$(window).scroll(function() { 
a = document.documentElement.scrollTop;
b = document.body.scrollTop;
c = document.documentElement.scrollHeight;
d = document.documentElement.clientHeight;

prg = Math.round(((a+b) /(c-d))*100);

});

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...