Мне просто интересно, как я могу реализовать больше данных на прокрутке, только если div.loading виден.
Обычно мы ищем высоту страницы и высоту прокрутки, чтобы узнать, нужно ли нам загружать больше данных. но следующий пример немного сложнее.
Следующее изображение является идеальным примером. в выпадающем списке есть два .load загрузки. Когда пользователь прокручивает контент, в зависимости от того, что видно, он должен начать загружать больше данных для него.
Итак, как я могу узнать, виден ли .loading div пользователю или нет? Так что я могу начать загружать данные только для этого div.
источник
new_element.hide().appendTo('.your_div').fadeIn(); $(window).scrollTop($(window).scrollTop()-1);
первая строка добавляет элементы хорошим способом, вторая гарантирует, что ваша функция никогда не останавливается в нижней части страницы.var end = $("#BottomThing").offset().top; var viewEnd = $(window).scrollTop() + $(window).height(); var distance = end - viewEnd; if (distance < 300) // do load
Вы слышали о плагине jQuery Waypoint ?
Ниже приведен простой способ вызова плагина waypoints и загрузки страницы с дополнительным контентом, как только вы достигнете нижней части прокрутки:
источник
Вот пример:
источник
Принятый ответ на этот вопрос имеет некоторые проблемы с Chrome, когда окно увеличено до значения> 100%. Вот код, рекомендованный разработчиками Chrome как часть ошибки, которую я поднял на том же самом.
Для справки:
Схожий вопрос
Chrome Bug
источник
Если не все ваши прокрутки документа, скажем, когда у вас есть прокрутка
div
в документе, то вышеупомянутые решения не будут работать без адаптации. Вот как проверить, попала ли полоса прокрутки div внизу:источник
Я потратил некоторое время, пытаясь найти хорошую функцию, чтобы обернуть решение. Во всяком случае, в конечном итоге это, как мне кажется, является лучшим решением при загрузке нескольких материалов на одной странице или на сайте.
Функция:
Затем вы можете вызвать функцию с помощью окна при прокрутке (например, вы также можете привязать ее к щелчку и т. Д., Как и я, отсюда и функция):
Использовать:
Этот подход также должен работать для прокрутки div и т. Д. Я надеюсь, что это поможет. В приведенном выше вопросе вы могли бы использовать этот подход для загрузки своего контента в разделы, возможно, добавлять и, таким образом, дриблить подачу всех этих данных изображения, а не массовую подачу.
Я использовал этот подход, чтобы уменьшить накладные расходы на https://www.taxformcalculator.com . Трюк сработал, если вы посмотрите на сайт, осмотрите элемент и т. Д., Вы можете увидеть влияние на загрузку страницы в Chrome (в качестве примера).
источник
Улучшение @deepakssn ответа. Существует вероятность того, что вы хотите, чтобы данные немного загрузились, прежде чем мы на самом деле перейдем к нижней части .
[var scrollLoad] используется для блокировки вызова до тех пор, пока не будут добавлены новые данные.
Надеюсь это поможет.
источник
В частности, вы задаете вопрос о загрузке данных, когда div попадает в поле зрения , а не о том, когда пользователь достигает конца страницы.
Вот лучший ответ на ваш вопрос: https://stackoverflow.com/a/33979503/3024226
источник