1. Главная страница » Компьютеры

Jquery подгрузка при прокрутке

Автор: | 16.12.2019

В настоящее время на многих сайтах можно увидеть динамически подгружаемый контент при прокрутке страницы. Этот эффект стал одной из хороших альтернатив обычной постраничной навигации. Хотя и у него есть свои недостатки, но удобство этого способа их компенсирует. Из этой статьи вы узнаете, как реализовать такой функционал у себя в проекте используя jQuery плагин jScroll.

Подключаем jQuery библиотеку и скрипт:

Теперь нам необходимо добавить HTML разметку:

И наконец, применяем плагин к блоку с индикатором content:

У jScroll есть свои настройки:

  • debug – включает возможность отслеживать работу скрипта через консоль, принимает значения true или false (по умолчанию false);
  • autoTrigger – отвечает за автоподгрузку контента, принимает значения true или false. По умолчанию установлено true, но если указать false автоподгрузка будет отключена, а вместо неё появится кнопка;
  • autoTriggerUntil – указывает сколько раз подгружать контент автоматически (по умолчанию false);
  • loadingHtml – в этом параметре мы можем поместить HTML код, который будет в место «Loading. » (по умолчанию «Loading. »);
  • padding – отступ до подгружаемого контента. Данный параметр работает, когда в значение autoTrigger установлено true (по умолчанию 0);
  • nextSelector – указывается селектор поиска пути обработчика (по умолчанию «a:last»);
  • contentSelector — указывается селектор для загрузки части контента (по умолчанию «»);
  • callback – функция вызывается в конце каждой загрузки данных. Внутрь её передаётся jQuery объект HTML элемента, в котором находится загруженный контент (по умолчанию false).

Завершая рассматривать подключение плагина и его настройки, важно упомянуть, что передача данных на сервер осуществляется при помощи метода GET.

Пример работы с плагином

После того, как мы рассмотрели основные моменты, связанные с плагином, можно приступать к реализации примера. Мы сделаем скрипт, который при первом открытии страницы будет грузить определенное число записей, а при скроллинге уже догружать остальные.

  1. Помещаем весь скрипт в jQuery обёртку;
  2. Определяем две переменных: впервой будет находиться результат выборки, во второй HTML код loading;
  3. После загрузки страницы обращаемся к файлу jscroll.php с параметром type равным start и добавляем на страницу loading;
  4. Если пришёл ответ, то добавляем его на страницу и удаляем loading;
  5. Вызываем плагин.

Переходим к серверу, тут у нас будет чуть больше кода. Я не стал выносить функции в отдельный файл, чтобы всё было максимально компактно.

Вверху файла описываем настройки сервера: $start_count_posts (изначальное число подгружаемых записей), $loading_count_posts (число записей подгружаемых при прокрутке), $path (путь до обработчика) и $text (записи у нас будут отличаться только своими номерами, так как это пример).

Далее мы добавим вспомогательные функции: is_ajax(), is_get() и template_post().

Теперь нам остаётся написать обработчик запросов, который будет анализировать пришедшие данные на сервер и возвращать результат его работы.

Обработка данных начинается с проверки способа, которым отправляются они на сервер. Если всё удачно, то заходим внутрь и обрабатываем пришедшие данные, иначе вызываем функцию exit. Так как в данном примере мы выводим одну и ту же запись, я умышленно поставил задержки в каждом из случаев по одной секунде. Далее формируем HTML код для ответа и отправляем обратно к пользователю.

Вот и всё, теперь вы сможете легко добавить к себе на сайт jScroll плагин для подгрузки контента.

Освойте бесплатно наиболее простой, быстрый и гибкий способ создавать адаптивные веб-сайты.

Дизайн лендинга

Создавайте дизайн любых сайтов — для себя и на заказ!

Популярное

  • Главная
  • ->
  • Материалы
  • ->
  • Ajax-подгрузка контента при прокрутке страницы

Reg.ru: домены и хостинг

Крупнейший регистратор и хостинг-провайдер в России.

Более 2 миллионов доменных имен на обслуживании.

Продвижение, почта для домена, решения для бизнеса.

Более 700 тыс. клиентов по всему миру уже сделали свой выбор.

Бесплатный Курс "Практика HTML5 и CSS3"

Освойте бесплатно пошаговый видеокурс

по основам адаптивной верстки

на HTML5 и CSS3 с полного нуля.

Фреймворк Bootstrap: быстрая адаптивная вёрстка

Пошаговый видеокурс по основам адаптивной верстки в фреймворке Bootstrap.

Научитесь верстать просто, быстро и качественно, используя мощный и практичный инструмент.

Верстайте на заказ и получайте деньги.

Что нужно знать для создания PHP-сайтов?

Ответ здесь. Только самое важное и полезное для начинающего веб-разработчика.

Узнайте, как создавать качественные сайты на PHP всего за 2 часа и 27 минут!

Создайте свой сайт за 3 часа и 30 минут.

После просмотра данного видеокурса у Вас на компьютере будет готовый к использованию сайт, который Вы сделали сами.

Вам останется лишь наполнить его нужной информацией и изменить дизайн (по желанию).

Изучите основы HTML и CSS менее чем за 4 часа.

После просмотра данного видеокурса Вы перестанете с ужасом смотреть на HTML-код и будете понимать, как он работает.

Вы сможете создать свои первые HTML-страницы и придать им нужный вид с помощью CSS.

Бесплатный курс "Сайт на WordPress"

Хотите освоить CMS WordPress?

Получите уроки по дизайну и верстке сайта на WordPress.

Научитесь работать с темами и нарезать макет.

Бесплатный видеокурс по рисованию дизайна сайта, его верстке и установке на CMS WordPress!

Хотите изучить JavaScript, но не знаете, как подступиться?

После прохождения видеокурса Вы освоите базовые моменты работы с JavaScript.

Развеются мифы о сложности работы с этим языком, и Вы будете готовы изучать JavaScript на более серьезном уровне.

*Наведите курсор мыши для приостановки прокрутки.

Ajax-подгрузка контента при прокрутке страницы

Размер: 48,4 Мб.

Длительность: 26 мин. 40 сек.

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

Вместо этого, контент из базы будет подгружаться автоматически благодаря Ajax-запросам как только пользователь промотает страницу вниз.

Такой подход активно используется в социальных сетях (например, ВКонтакте) и на ряде других сайтов для того, чтобы отображать новые записи, комментарии и т.д.

Это позволяет посетителям сайта быстрее получить доступ к нужному содержимому без необходимости кликать по ссылкам постраничной навигации.

Кроме этого, динамическая подгрузка контента через Ajax-запросы позволяет не перезагружать страницу целиком, что экономит вычислительные ресурсы сервера.

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

В самом начале урока вы увидите демонстрацию результата и после этого сможете посмотреть подробное объяснение того, как все это работает.

Краткий обзор урока (все подробности смотрите в видео):

1. Для начала создаем новый хост для работы над примером. В моем случае он имеет имя prokrutka. В нем размещаем все файлы примера из доп. материалов.

2. Далее экспортируйте дамп базы данных, который приложен к уроку (файл dump.sql). Он создаст новую базу данных и таблицу с данными, которые используются в примере.

3. Теперь давайте посмотрим на код файла index.php:

Файл index.php является основным файлом, к которому мы производим обращение. В нем мы подключаемся к базе данных, используя файл db.php и инструкцию include.

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

В тэге head подключаем два JavaScript-файла — библиотеку jQuery (для совершения Ajax-запроса) и файл scripts.js, в котором мы и напишем сам запрос и другой необходимый для работы JavaScript-код.

В тэге body мы выводим блок div с идентификатором articles. В нем формируем цикл для вывода статей, а под блоком размещаем кнопку "Дальше", которая нам пригодится чуть позже (подробно об этом рассказано в видео).

4. Рассмотрим теперь файл db.php:

Как видите, здесь нет ничего необычного. Мы просто задаем данных для подключения к базе: хост, имя базы, логин и пароль.

После этого производим подключение и указываем кодировку, в которой будет получена информация из базы — UTF-8.

5. Теперь очередь файл-обрабочика — obrabotchik.php:

В этом файле мы будем производить необходимые действия, приняв данные, отправленные с помощью Ajax-запроса.

Первым делом подключаемся к базе данных и задаем переменную startFrom, определяющую, с какой статьи будет производиться вывод.

Получаем мы эту информацию из массива POST, в который она попадет благодаря Ajax-запросу. Значение этой переменной будет меняться, и мы используем его для задания ограничения LIMIT при формировании запроса на выборку.

Далее мы формируем массив с 10 статьями, который будет отдаваться в ответ на Ajax-запрос.

И, наконец, для того, чтобы передать данный массив через Ajax-запрос, мы преобразуем его в json-строку.

6. Теперь переходим к основному функционалу и файлу scripts.js:

Дожидаемся окончания загрузки документа и создаем переменную-флаг inProgress для отслеживания того, происходит ли в данный момент ajax-запрос. Изначально даем ей значение false, т.е. запрос не в процессе выполнения.

Следующим шагом указываем, с какой статьи надо делать выборку из базы при ajax-запросе (переменная startFrom).

После этого работаем с логикой скрипта. По событию прокрутки окна, мы проверяем, достиг ли человек нижней части экрана.

Если да, то мы запускаем Ajax-запрос, передав ему все необходимые данные (включая значение переменной startFrom).

Обратите внимание, что до начала выполнения запроса мы меняем значение для переменной флага с false на true, а после окончания — обратно: с true на false.

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

По окончании запроса мы преобразуем результат, пришедший от обработчика, т.е. json-строку обратно в объект (по сути — массив) для того, чтобы работать с ним средствами JavaScript.

После этого нам остается только отобрать в jQuery-набор наш блок со статьями по идентификатору articles и добавить в него 10 новых статей, запрошенных из базы.

По окончании этого мы увеличиваем на 10 порядковый номер статьи, с которой надо начинать выборку из базы при следующем Ajax-запросе.

Вот в общем-то и все. Общую схему работы вместе с кодом я привел выше, однако если этот обзор вам не до конца понятен, то изучите полную версию урока в видеоформате на этой странице выше.

С уважением, Дмитрий Науменко.

P.S. Неплохо? Тогда присмотритесь к премиум-урокам по различным аспектам сайтостроения, включая JavaScript, jQuery и Ajax, а также к бесплатному курсу по созданию своей CMS-системы на PHP с нуля. Все это поможет вам быстрее и проще освоить практические навыки веб-программирования:

Понравился материал и хотите отблагодарить?
Просто поделитесь с друзьями и коллегами!

🚀 Лучшие премиум-темы для Вордпресс от топовых разработчиков мира

Что-то давненько я не публиковал никакого кода. Сегодня я исправлю ситуацию и дам несколько полезных сниппетов на jQuery, которые обязательно вам пригодятся на ваших сайтах.

Я не буду вдаваться в теорию, вся документация по jQuery есть на официальном сайте библиотеки. Я лишь напомню, что, такое jQuery.

jQuery — это библиотека JavaScript, фокусирующаяся на взаимодействии JavaScript и HTML. Библиотека jQuery помогает легко получать доступ к любому элементу DOM, обращаться к атрибутам и содержимому элементов DOM, манипулировать ими. Также библиотека jQuery предоставляет удобный API для работы с AJAX.

1. Плавная прокрутка к началу страницы

Без нее уже не обходится ни один сайт. Всего лишь 4 строчки кода позволят вашим посетителям в один клик плавно пркрутить всю страницу вверх.

2. Дублируем заголовки таблиц

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

3. Подгрузка внешних данных

С помощью jQuery очень легко подгружать на веб-страницы внешний контент. Его можно вывести прямо в блок DIV, как в примере ниже.

4. Одинаковая высота колонок

Известно, что выровнять блоки по высоте стандартными средствами HTML и CSS не так-то просто. Всего несколько строк кода ниже позволит вам сделать высоту всех блоков равной высоте большего блока.

5. Табличная зебра

Как известно, восприятие и читабельность таблицы будет заметно выше если сделать разноцветное чередование строк. Это очень легко реализуется на jQuery.

6. Частичное обновление страницы

С помощью jQuery очень просто реализовать блочное (частичное) обновление страницы. К примеру, код ниже позволит вам каждые 10 секунд автоматически обновлять блок #refresh.

7. Предзагрузка изображений

Данный код позволяет осуществлять загрузку изображений в фоновом режиме без подгрузок в процессе просмотра страницы. Просто перечислите в 7 строке необходимые вам для предзагрузки изображения.

8. Открытие внешних ссылок в новых окнах/табах

Данный сниппет осуществляет принудительное открытие всех внешних ссылок страницы в новом окне браузера. Скрипт банально определяет текущий домен сайта, и срабатывает если он не совпадает с адресом в ссылке.

9. Блок во все окно браузера

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

10. Проверка сложности пароля

Если вы позволяете посетителям своего сайта самостоятельно указывать пароли, было бы неплохо проконтролировать его сложность и информировать об этом посетителя.

Для начала напишем HTML-часть кода:

А с помощью кода ниже мы проверим введенный пароль и выведем посетителю информацию: его пароль сложный, средний или слабый, а также проверим не слишком ли он короткий.

11. Ресайз изображений средствами jQuery

Конечно, логичнее изменять размеры изображений на стороне сервера средствами PHP и GD, но бывают ситуации когда это необходимо сделать именно на стороне клиента. И в этом снова нам поможет jQuery.

12. Подгрузка контента при прокрутке страницу вниз

Чаще этот прием называют как бесконечный скролл. Контент подгружается по мере прокрутки пользователем страницы. Это достаточно просто реализовать с помощью кода ниже.

13. Проверка загрузки изображения

Часто бывает нужно проверить загружено изображение в данный момент или нет. И в этом снова нам поможет jQuery.

14. Сортировка по-алфавиту

Если вам нужна динамическая сортировка списка по-алфавиту, вам обязательно поможет этот небольшой сниппет.

Подпишитесь на мой телеграм и первыми получайте новые материалы, в том числе которых нет на сайте.

200 бесплатных наборов кистей для Фотошопа
573

Как в Фотошопе сменить русский язык на английский
195

Как открыть *.CDR в Adobe Illustrator
184

Как быстро наполнить сайт на WordPress с помощью плагина WP All Import
183

25 лучших шаблонов для создания интернет-магазина на OpenCart
178

5 лучших книг по Вордпресс на русском языке
158

Как быстро удалить все исходящие заявки в друзья во Вконтакте
132

Как использовать Media Query в JavaScript
126

Установка временнОй зоны в PHP
122

10 рекомендуемых книг-бестселлеров по PHP
121

Как импортировать большую базу данных MySQL в обход ограничений phpMyAdmin
117

Проблемы с некоторыми плагинами после обновления Вордпресс до 5.3
107

Как скачать приватное видео из фейсбука
98

20 лучших шаблонов Вордпресс для сферы услуг
94

Подключаем цели Яндекс Метрики к WordPress Contact Form 7
87

Как отправить большое видео в Ватсап
87

Как включить мультисайт и создать сеть сайтов на Вордпресс
86

Топ 12 Вордпресс шаблонов для сайта доставки еды
83

Как разрешить загрузку SVG и других форматов файлов в Вордпресс?
81

20 лучших Вордпресс шаблонов для образовательных сайтов
79

Практикующий веб-разработчик, специализируюсь на платформе Вордпресс.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *