“if' VS ”else if"

При условии, что ваша текущая проверка срабатывает при прокрутке вниз страницы, вы можете попробовать некоторую базовую арифметику:

if ($(window).scrollTop() >= ($(document).height() - $(window).height())*0.7){
                                          //where 0.7 corresponds to 70% --^

Обязательно добавьте проверку, чтобы не запускать несколько одновременных запросов Ajax, если вы не уже.

Это скорее выходит за рамки вопроса, но если вам нужен пример того, как предотвратить одновременный запуск нескольких запросов:

Объявите глобальную переменную, например, processing.

Затем включите его в свою функцию:

if (processing)
    return false;

if ($(window).scrollTop() >= ($(document).height() - $(window).height())*0.7){
    processing = true; //sets a processing AJAX request flag
    $.post("url", '', function(data){ //or $.ajax, $.get, $.load etc.
        //load the content to your div
        processing = false; //resets the ajax flag once the callback concludes
    });
}

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

Редактировать: Пример JSFiddle

Обратите внимание, что использование% для измерения высоты документа может быть плохой идеей, учитывая, что высота документа будет увеличиваться каждый раз, когда вы что-то загружаете, делая это вызывает Ajax-запрос, находящийся относительно далеко от нижней части страницы (по абсолютному размеру).

Я бы рекомендовал использовать фиксированное значение смещения, чтобы предотвратить это (200-700 или около того):

if ($(window).scrollTop() >= $(document).height() - $(window).height() - 700){
                                 // pixels offset from screen bottom   --^

Пример: JSFiddle

Изменить: Чтобы воспроизвести проблему в первом коде с процентами, загрузите в него 50 div с. Когда вы загрузите следующий div, он добавит только 2% к общей высоте документа, что означает, что следующий запрос будет запущен, как только вы прокрутите эти 2% назад к 70% высоты документа. В моем фиксированном примере определенное нижнее смещение будет загружать новый контент, только когда пользователь находится в определенном диапазоне абсолютных пикселей от нижней части экрана.

11
задан Wok 24 September 2010 в 19:44
поделиться

1 ответ

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

0
ответ дан 3 December 2019 в 00:37
поделиться
Другие вопросы по тегам:

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