Как сделать красивый прелоадер для сайта

Создание прелоадера для сайта это простое дело, которое не только сделает ваш сайт красивее, но также увеличить конверсию пользователей.
Создание прелоадеров стало очень модными, ведь они выглядят красиво, а главное заставляют пользователя не покинуть сайт пока он еще грузиться.
Как же сделать прелоадер для сайта?
Сам прелоадер можно сделать всего за пару секунд, если использовать готовые решения или же за пару минут, если писать все самому с чистого листа 🙂
Но давайте все по порядку.
Сама суть браузера заключается в том, что он отображает код поэтапно. Это означает что браузер проходит весь код сверху вниз и если где-то посередине кода он встретит тяжелые JS скрипты, то сайт немного застынет на этом моменте.
Preloader делает так, что мы скрываем весь контент сайта и отображаем его полностью только тогда, когда весь сайт будет загружен со всеми скриптами и стилями.
Краткая схема работы прелоадера:
- Буквально сразу после открывающегося тега body размещаем div c прелоадером;
- Включаем прелоадер и скрываем все содержимое страницы;
- После загрузки страницы убираем preloader и показываем сайт.
Теперь разберемся с кодом. Изначально вам надо поместить div с прелоадером, что-то вроде этого:
Дальше стоит добавить стили, чтобы прелоадер занимал всю ширину экрана и смотрелся как-то неплохо:
.areaForLoader
Последним делом вам надо скрывать прелоадер. Для этого можно воспользоваться следующим кодом на jQuery :
$(window).on('load', function () < $preloader = $('.loaderArea'), $loader = $preloader.find('.loader'); $loader.fadeOut(); $preloader.delay(350).fadeOut('slow'); >);
По сути вам только остается добавить какую-нибудь красивую анимацию к вашим прелоадерам. Кроме того, я нашел несколько интересных примеров прелоадеров, так что вы можете их глянуть:
See the Pen CSS3 Loading Spinner by Matthew Roelle ( @Mattykins ) on CodePen .
See the Pen Random Loader by Mr Alien ( @mr_alien ) on CodePen .
Создание прелоадера при помощи плагинов
Также существуют и другие способы создания прелоадеров и полос загрузки. К примеру, вы можете воспользоваться специальным плагином NProgress.js для создания красивой полосы загрузки или же воспользоваться конструктором прелоадеров .
Как раз об этих двух вещах отлично рассказано в видео уроке по созданию прелоадера, поэтому советую вам посмотреть этот видео урок:
И напоследок, оставлю здесь весь код из видео урока выше, чтобы вам было легче во всем разобраться:
Preloader Hello-Site.ru. Бесплатный конструктор сайтов.
Больше интересных новостей

Кому не стоит идти в IT?

ТОП-5 лучших игровых движков / Рейтинг 2022 года

Даркнет: продажа конфиденциальной информации?

Лучшие университеты в сфере ИТ: ТОП-10
Как сделать прелоадер

Привет, друзья. Бывает такое, что из-за использования тяжелых плагинов и сайт грузиться непозволительно долго. В таких случаях я рекомендую избавляться от них, либо искать менее «тяжелый» аналог. Но иногда — его просто нет. В таком случае можно попробовать использовать прелоадер, чтобы немного развлечь (отвлечь) пользователя. Но не все знают, как подобный функционал реализовать.
Первым делом стоит упомянуть, что использование прелоадера целесообразно в случаях, когда долго грузится главный экран или тогда, когда контент грузится кусками. Все это может привести либо к мгновенному уходу пользователя с сайта, либо к негативному впечатлению о компании вцелом.
Как сделать прелоадер для landing page
Прежде чем начать делать preloader, нужно немножко уяснить суть того, как браузер загружает страницу. Не буду расписывать весь цикл, так как у самого довольно абстрактное представление, но важно понять, что в целях экономии времени, браузер грузит (отображает) код поэтапно и не дожидается полной загрузки страницы, а в случае подключения js, так вообще прекращает загрузку, пока не выполнит подключаемый файл. Это значит, что загрузка (отображение) остального контента приостанавливается до полной загрузки js файла. В общем, проблем достаточно, давайте теперь попробуем их решить при помощи прелоадера.
Теперь пару слов для понимания того, что мы делаем:
- В самом начале размещаем div c прелоадером
- Скрываем прелодером содержимое сайта до момента полной загрузки страницы
- Скрываем прелоадер и показываем страницу
Теперь, сразу после открытия тега body разместим следующий div:
Скорее всего, если у вас проблемы с загрузкой сайта, значит у вас много качественных изображений и различных тяжеловесных скриптов, а значит, вы наверняка используете и jQuery, поэтому для того, чтобы наш preloader исчез после того, как загрузится основное содержимое, воспользуемся следующим скриптом:
Размещайте его где-нибудь после подключения jQuery.
Немного поясню html. LoaderArea — фоновая область, которая перекрывает основной контент. CSS этого дива такой:
.loaderArea
Loader — это активная область (сам прелоадер). Так как я решил делать его при помощи только CSS, то у него такие стили:
.loader < height: 40px; width: 40px; position: absolute; left: 50%; margin-left: -20px; top: 50%; margin-top: -20px; >.loader:before, .loader:after < content: ""; height: 40px; width: 40px; border: 8px solid rgba(255,255,255,.5); border-radius: 10px; position: absolute; top: 0; >.loader:before < animation: animate 2s infinite linear; >@keyframes animate < 0% < transform: rotate(0) skew(0); >100% < transform: rotate(180deg) skew(360deg); >> .loader:after < animation: animate2 2s infinite linear; >@keyframes animate2 < 0% < transform: rotate(0) skew(0); >100% < transform: rotate(-180deg) skew(-360deg); >>
Исходник прелоадера я взял с Codepeen. Вот ссылки на несколько интересных вариантов:
А вы пользуетесь прелоадереми на своих сайтах. Я вот, впервые его использовал. Какие у вас интересные примеры есть?
Делаем прелоадер для вашего сайта
Приветствую, сегодня покажу вам, как сделать прелоадер для вашего сайта. Preloader служит для того, что бы улучшить у пользователя впечатление о сайте. Ведь страница не загружается мгновенно. Картинки грузятся долго, во время их прогрузки сайт будет «прыгать». Так же нужно время для загрузки шрифтов, во время чего сайт так же будет постоянно видоизменятся. Поэтому намного лучше на время загрузки сайт скрыть, и показать пользователя приятную анимацию. После загрузки, просто скрываем его, и пользователь видит сразу красивый, плавный сайт. Этот момент очень сильно улучшает восприятие.
Базовая структура
Для начала, создадим базовую HTML структуру. Рекомендую помещать preloader сразу после открывающего тега . Так как я буду использовать gif-изображение, то и HTML структура максимально простая: (если вы хотите использовать CSS Preloader, просто поместите его код вместо тега )
Далее пишем CSS код, для того, что бы скрыть всю страницу, и отцентровать его.
#preloader
Скрываем прелоадер после загрузки (чистый JavaScript)
window.onload = function() < let preloader = document.getElementById('preloader'); preloader.classList.add('hide-preloader'); setInterval(function() < preloader.classList.add('preloader-hidden'); >, 990); >
Так же необходимо добавить несколько строк CSS кода для плавности (ниже распишу для чего конкретно)
#preloader.hide-preloader < animation: hidePreloader 1s; >#preloader.preloader-hidden < display: none; >@keyframes hidePreloader < 0% < opacity: 1; >100% < opacity: 0; >>
Как это работает?
При помощи window.onload, мы проверяем, загружена ли страница. После загрузки — исполняем написанный ниже код. Создаем переменную, в которую помещаем div с id=’preloader’. После чего, добавляем к этому элементу класс ‘hide-preloader’. Как видно из CSS кода, при добавлении класс запускает анимацию, в которой уменьшает непрозрачность элемента с 1 до 0 за 1 секунду. После анимации прелоадер уже не будет виден, и на этом можно было и закончить, но возникает проблема. Элемент никуда не исчез, а так и покрывает всю страницу, находясь НАД всеми элементами. Это значит, что все элементы ПОД ним не интерактивны (тоесть все ссылки/формы/кнопки работать не будут). Для этого, после загрузки страницы мы запускаем таймер на 990 секунду (немного короче анимации). После окончания таймера, мы добавляем класс ‘preloader-hidden’ к элементу, окончательно скрывая его со страницы. Вы можете подумать, что можно было просто скрыть элемент, с помощью display: none. Это так, но тогда элемент пропадает очень резко, так как display: none — нельзя анимировать.
И вот результат:
Скрываем прелоадер с помощью jQuery
В этом случае нам не нужно добавлять CSS классы и т.д. Только подключить jQuery и написать этот код:
$(document).ready(function() < $('#preloader').fadeOut(400); >);
Спасибо, что прочитали. Если у вас остались любые вопросы, задавайте их в комментариях, всем помогу. Так же буду благодарен, если вы прочитаете другие мои статьи:
Семенюк Назарий
Full Stack разработчик, Frontend: Vue.js (2,3) + VueX + Vue Router, Backend: Node.js + Express.js. Раньше работал с РНР, WordPress, написал несколько проектов на Laravel. Люблю помогать людям изучать что-то новое)
Как сделать прелоадер на время загрузки JS?
Достаточно закрыть необходимые вам или все элементы на странице прелоадером, который будет исчезать после необходимых действий на странице.
Пример доработан. Версию с использованием библиотеки jquery можно считать устаревшей, но она была оставлена, чтобы показать, как делать не нужно.
Обновленный вариант (2019):
function loadData() < return new Promise((resolve, reject) =>< // setTimeout не является частью решения // Код ниже должен быть заменен на логику подходящую для решения вашей задачи setTimeout(resolve, 2000); >) > loadData() .then(() => < let preloaderEl = document.getElementById('preloader'); preloaderEl.classList.add('hidden'); preloaderEl.classList.remove('visible'); >);
#preloader < position: fixed; left: 0; top: 0; z-index: 999; width: 100%; height: 100%; overflow: visible; background: #fbfbfb url('//cdnjs.cloudflare.com/ajax/libs/file-uploader/3.7.0/processing.gif') no-repeat center center; >.visible < visibility: visible; opacity: 1; transition: opacity 2s linear; >.hidden
EXAMPLE
Вариант 2015 года (Устарел. Так делать не нужно!):
jQuery(document).ready(function($) < $(window).load(function() < setTimeout(function() < $('#preloader').fadeOut('slow', function() <>); >, 2000); >); >);
#preloader < position: fixed; left: 0; top: 0; z-index: 999; width: 100%; height: 100%; overflow: visible; background: #333 url('//cdnjs.cloudflare.com/ajax/libs/file-uploader/3.7.0/processing.gif') no-repeat center center; >
EXEMPLE