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

Обновлено: 08.07.2024

Как сделать полосу загрузки страницы вверху экрана как на YouTube.

Сделать полосу загрузки на сайте как Ютуб и Хром

Установка

Теперь любой вебмастер имеет возможность сделать на своем сайте полосу загрузки как на Ютубе или браузере Гугл Хром. Для этого даже не надо писать собственный php или javascript. Все уже сделано за нас. Представляю вам готовый скрипт, который надо просто подключить на своей страничке. мы может менять скорость загрузки полосы, а также ее местоположение и цвет! Смотрите демо.

Для этого вставляем такой код перед закрывающим тегом head:

Поясню код:
В первой строке подключаем библиотеку Jquery от гугла, т.к. его сервера самые быстрые.
Во второй строке подключаем стили для нашей полосы загрузки.
Ну и в третьей строке подключаем сам скрипт полоски. Ваш_сайт конечно же замените на имя вашего сайта!

Исходный код

Код скрипта полосы загрузки nprogress.js:

Код файла стилей полосы загрузки nprogress.css:

После тега body разместить такой код:

Дата публикации статьи: 23 апреля 2014 в 10:51
Последнее обновление: 19 февраля 2021 в 10:15

Вывести видео Ютуб на сайте

Как улучшить пользовательские факторы? Сегодня этот вопрос не выходит из головы ни у одного оптимизатора. Всем хочется подольше…

Узнать скорость загрузки сайта

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

Как сделать скриншот Видео-файла

Сделать скриншот с помощью BSplayer: Открываем видео файл BSplayer’oм. Правый клик на плеере, или на окне изображения. Options…

Ютуб запретил просмотр видео

Я с удовольствием смотрю и слушаю любимую музыку через Ютуб. Однажды я улетел на отдых далеко заграницу. Решил…

Вот пожалуйста, вставляем в любом месте

И получаем там же

Невзрачненько. Чтоб сделать этот бегунок красивым, можно применить css, но не всё так просто. Дело в том, что каждый браузер отображает бегунок по своему.

Я не стану забивать Вам мозги подробностями, почему так происходит, Вы же ещё только начинающие, и многое Вам будет совершенно не понятно.

Скажу только, что для того чтоб наш бегунок получился красивым во всех браузерах, мы будем использовать вендорные (браузерные) префиксы.

Далее я Вам дам несколько вариантов кода с объясняющими комментариями, и Вы методом научного тыка и матерного слова (самый результативный метод), сможете поработать в Notepad ++ над внешним видом бегунка.

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

Итак, код красивого бегунка:

input[type=range] -webkit-appearance : none ;
margin : 50px ;
width : 20% ;
>

input[type=range]:focus outline : none ;
>

/* Бегунок в Хроме */

/* Полоса в Мозиле */

/* Бегунок в Мозиле */

А вот и он сам, работает, можно подвигать:

Ещё один пример, в котором линия, по которой двигается бегунок, является индикатором.

/* Линия-ндикатор для Firefox */

input[type=range]::-moz-range-track background : none ;
border : none ;
>

/* ползунок в Firefox */

/* ползунок в Хроме */

Результат, так же рабочий:

Чтоб метод тыка и матерного слова, не свёлся у Вас к простому копированию, а был осмысленным и, значит, более плодотворным, я убрал из кода обеих ползунков участок, предназначенный для IE.

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

Желаю творческих успехов.


Перемена

Мужчина упал с десятого этажа, и не разбился. Так целиком и похоронили.

demo
sourse

Урок по созданию эффекта предварительной загрузки страницы с сайта Fontface Ninja. Мы будем использовать CSS анимацию, 3D трансформации и SVG.

Сегодня мы хотим вам показать, как создать простой эффект предварительной загрузки страницы с помощью CSS анимации, SVG и JavaScript. Для сайтов, на которых чрезвычайно важной является загрузка всех ресурсов, наша наработка может стать прекрасным способом скоротать ожидание посетителя. На создание этого пособия нас вдохновил красивый эффект предварительной загрузки, который мы увидели на сайте Fontface Ninja. Первоначально, лого и индикатор загрузки сайта скользят вверх, и когда загрузчик заканчивает анимацию, то есть все ресурсы загружены, то весь “заголовок” движется вверх, в то время, как элементы страницы отображаются при помощи другого эффекта. Скользящее лого, меняющее цвет, становится вишенкой на нашем торте.

Конечно же мы внесли и свои преобразования в данный эффект, в том числе создали второе демо, где применяем немного другие эффекты. Для лого и индикатора предварительной загрузки сайта мы будем использовать встроенные SVG, с целью преобразования path через CSS. Создадим маленький скрипт для анимации загрузки элемента SVG, контролировать анимацию страницы будем классами, которые добавим к основному контейнеру.

Пожалуйста, обратите внимание на то, что мы будем использовать CSS анимацию и CSS 3D трансформации, поэтому они будут работать должным образом только в тех браузерах, которые их поддерживают.

Давайте поместим заголовок и блок основного содержания в отдельный контейнер. Напомним, что мы хотим контролировать все, что происходит с первоначальным видом и содержимым с помощью классов. Для этого нам пригодится главный контейнер. Зададим ему класс и id равный ip-container.

Сначала отобразим заголовок, состоящим из лого и элемента предварительной загрузки: они оба являются элементами SVG, однако код мы разделим. Как видите, мы выставляем значения атрибутов ширины и высоты, viewBox и preserveAspectRatio . Значением presevreAspectRatio будет xMidYMin meet . Это значит, что мы можем применить масштабирование, в котором графика отлично помещается в свой контейнер, в то время, как её центр находится на оси Х. Чтобы сделать лого доступным для людей с ограниченным возможностями, добавляем название, описание и все необходимы атрибуты ARIA, aria-labeledby.

Основному контейнеру зададим класс ip-main, а позже применим анимацию для его дочерних элементов, заголовков, разделов и внутренних боксов:

Теперь давайте стилизуем всё это дело.

Хотим отметить, что CSS не будет содержать браузерных префиксов, но вы сможете найти полный листинг в исходниках.

Изначально, мы подключаем несколько шрифтов, которые нам понадобятся для замещающего текста и иконок в боксе. Иконки, используемые в демо, взяты из Feather icon set и мы создали иконочный шрифт с помощью Icomoon App. Шрифт замещающего текста – Blokk, очень удобен для создания макетов.

Изначально зададим заголовку 100% ширины и высоты, а позицию выставим как fixed:

Сбрасываем значения внешних отступов заголовка h1:

Логотип и элемент загрузки будем позиционировать абсолютно:

Так же нам не нужно забывать, что логотип должен быть адаптивным. Расположим его по центру экрана:

SVG, которому мы присвоили класс ip-inner, будет отображаться как блочный элемент, центрируем его по горизонтали, используя значение auto для боковых внешних отступов:

SVG лого должно быть активным, но его размер не должен быть слишком большим или маленьким. Выставим максимальную и минимальную ширину:

Так как наш логотип это SVG, можем настроить цвет элемента path:

То же самое касается и загрузчика:

Фон будет серым:

Процентом загрузки будем управлять через JS. Определим перемену stroke-dashoffset :


А сейчас мы стилизуем контент, который находится в контейнере с классом ip-main:

Размер заголовка будет выставлен в единицах vw, что позволит сделать его адаптивным:

Добавим изображение браузера:

И несколько боксов для заполнения пространства:

Каждому боксу зададим иконку:

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

Изначально элементы будут выплывать снизу:

Нам нужно определить стартовую позицию, так как мы хотим передвинуть элементы на их первоначальные места. Функция cubic-bezier придаст анимации плавный эффект. Элемент загрузки должен появляться чуть позже.

Напомним, что прогресс загрузки мы будем анимировать через JS. Поэтому нам нужно определить ещё одно “состояние” на которое мы переключимся, когда загрузка будет завершена. Присвоим контейнеру класс loaded и применим следующую анимацию:

Лого на 100% сдвигается вниз. Цвет элемента SVG изменится во время перехода.

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

Заголовок также должен сдвинуться вверх:

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

Небольшая задержка создаст дополнительный стильный эффект.

Чтобы избежать проблем с прокруткой и появлением пробелов внизу страницы, нам нужно изменить позицию заголовка с fixed на absolute. Для этого можем задать специальный класс элементу body. Данный класс будет использоваться для изменения позиции:

Если JavaScript отключён, отобразим содержимое сразу после анимации. Позицию заголовка выставим как relative и подберём подходящий размер лого:

В конце концов напишем несколько медиа запросов для нормального отображения нашей страницы на разных размерах экранов:


Со стилями закончили.

JAVASCRIPT

JavaScript код будет состоять из двух частей. Мы разделим общий функционал элемента загрузки от всего остального. Давайте назовём этот скрипт pathLoader.js. Тут мы хотим иметь возможность установить stroke-dashoffset чтобы анимировать заполнение элемента path. Первоначально, stroke-dashoffset и stroke-dasharray устанавливаются по длине элемента path (getTotalLength()). Для изменения прогресса загрузки напишем функцию setProgress, куда будем передавать состояние загрузки страницы.

Метод setProgressFn используется для взаимодействия с загрузчиком. В нашем демо загружать нечего, поэтому мы должны симулировать данный эффект, устанавливая величину между 0 и 1 в определённые моменты времени:

Далее создадим скрипт main.js. Инициализируем и кэшируем переменные:

Начинаем анимацию (лого и окно загрузки скользят вверх), присвоив класс loading к главному контейнер. После завершения анимации, начинаем имитировать загрузку. Обратите внимание, что во время отображения этой анимации, страница не может прокручиваться:

После окончания анимации заменяем класс loading классом loaded, который запустит появление заголовка и содержания. После этого, мы добавляем body класс layout-switch и активируем прокрутку:

5 последних уроков рубрики "CSS"

Забавные эффекты для букв

Небольшой эффект с интерактивной анимацией букв.

Реализация забавных подсказок

Небольшой концепт забавных подсказок, которые реализованы на SVG и anime.js. Помимо особого стиля в примере реализована анимация и трансформация графических объектов.

Анимированные буквы

Эксперимент: анимированные SVG буквы на базе библиотеки anime.js.

Солнцезащитные очки от первого лица

Прикольный эксперимент веб страницы отображение которой осуществляется “от первого лица” через солнцезащитные очки.

Ползунок диапазонов jQuery UI Slider

Плагин jQuery UI Slider делает выбранные элементы ползунками. Существуют различные варианты, такие как несколько рукояток, которые можно перемещать с помощью мыши или клавишами стрелок, и диапазонов.

1. Установка
  • подключаем библиотеку jQuery версии 1.7+
  • подключаем библиотеку jQuery UI с виджетом Slider
  • подключаем стиль jQuery UI с виджетом Slider
  • подключаем плагин jQuery UI Touch Punch для корректной работы ползунков на тачпадах
  • добавляем HTML для нашегно ползунка:

В итоге получим это:

2. Настройки
animate

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

true или false, "fast" (быстро) или "slow" (медленно), или число в миллисекундах

По умолчанию: — false

classes

Добавляет дополнительные классы к классам слайдера. Может использоваться, если для разных ползунков используются разные стили.

disabled

Отключает true или включает false слайдер.

По умолчанию: — false

Максимальное значение ползунка.

По умолчанию: — 100

Минимальное значение ползунка.

По умолчанию: — 0

orientation

Горизонтальная "horizontal" или вертикальная "vertical" ориентация слайдера

По умолчанию: — "horizontal"

range

Определяет диапазон ползунка

Значение true включит второй ползунок и диапазон между ними, "min" - диапазон от минимума шкалы до ползунка, "max" - диапазон от ползунка до максимума шкалы

По умолчанию: — false

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

По умолчанию: — 1

value

Начальное значение ползунка, если он один

По умолчанию: — 0

values

Начальные значения ползунков, если их два, например [ 10, 20 ]

По умолчанию: — null

3. Методы

Вызов этих функций позволяет быстро влиять на работу ползунка и получать с него данные

$( ".selector" ).slider( "destroy" );

Полностью удаляет функциональность ползунка, что вернет элемент обратно в исходное состояние.

$( ".selector" ).slider( "disable" );
$( ".selector" ).slider( "enable" );

Возобновляет работу ползунка.

$( ".selector" ).slider( "option", < настройки >);

Устанавливает одну или несколько настроек

var option = $( ".selector" ).slider("option", "min");

Получает значение настройки

var option = $( ".selector" ).data().uiSlider.options;

Получает значения всех настроек, например: option.min, option.max и т.д.

$( ".selector" ).slider( "value", 20 );

Устанавливает нужное значение для рукоятки

var selection = $( ".selector" ).slider( "value" );

Получает значение рукоятки

$( ".selector" ).slider( "values", [ 55, 105 ] );

Устанавливает нужные значение для рукояток

$( ".selector" ).slider( "values", [ 0, 105 ] );

Устанавливает нужное значение для рукоятки 0

var values = $( ".selector" ).slider( "values" );

Получает значения рукояток

4. События
change ( event, ui )

Событие, которое происходит при изменении значения ползунка

create ( event, ui )

Событие, которое запускается при создании ползунка

slide ( event, ui )

Событие, которое происходит на каждое движении мыши, при перетаскивании рукоятки ползунка. ui.value представляет текущее значение ползунка.

start ( event, ui )

Событие, которое происходит, когда пользователь начинает перетаскивать рукоятку ползунка

stop ( event, ui )

Событие, которое происходит, когда пользователь заканчивает перетаскивать рукоятку ползунка

5. Вывод значений ползунка

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

Значение ползунка:

Для слайдера из 2-х рукояток:

Значение ползунка:

6. Добавление значений к форме

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

Значение ползунка:

7. Оформление

Чтобы придать ползунку другой вид, нужно добавить свой стиль ниже оригинального jquery-ui.css (как в примере) или редактировать оригинальный

Другие способы оформления можно поглядеть в отдельной статье: Варианты оформления jQuery UI Slider

8. Описание классов

Ниже представлена таблица с классами слайдера и за что отвечает каждый из них

КлассОписание
.ui-sliderдорожка слайдера
.ui-slider-horizontalстили для горизонтального слайдера
.ui-slider-verticalстили для вертикального слайдера
.ui-slider-handleстили для рукоятки
.ui-slider-rangeстили для выбранного диапазона
.ui-slider-range-minстили для выбранного диапазона с настройкой range: "min"
.ui-slider-range-maxстили для выбранного диапазона с настройкой range: "max"
.ui-state-disabledстили для заблокированного слайдера (disabled: true)

Смотрите также:

Новостной слайдер

Новостной слайдер

Адаптивный слайдер новостных карточек или другой информации

Слайдер

Слайдер "До" и "После"

Скрипт на jQuery и jQuery UI для смены одной фотографии на другую

Радиокнопки — карточки

Радиокнопки — карточки

Оформление переключателей radio в виде карточек для тарифов или другой информации

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

Комментарии:

Я тут закономерности никакй не увидел, руками только подставлять значения значения.

Тут value - значение по умолчанию, на котором стоит ползунок.
И скрипт:

Я вам премного благодарен за помощь ! Всё получилось идеально ! Спасибо огромное !

Подскажите как один ползунок заставить двигаться другой ползунок синхронно ( в ползунках значения разные ) ?

Через события и методы, например, когда у нас двигается ползунок, происходит событие slide , через ui.value получаем его значение.
Далее обрабатываем это значение как нам нужно и передаем в другой ползунок
$( ".selector" ).slider( "value",значение );

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

Спасибо вам огромное ! Всё получилось ! И последний маленький вопрос . Как отобразить в подсказке над handle свои значения , а не значения бегунка. Данные для подсказки нужны такие min:13, max:24. Данные в slider min:1, max:12

Как в пункте 5 -Вывод значения ползунка, только прибавьте к выводимому значению 12

Александр , спасибо вам большое ещё раз ! С вашей помощью начал потихоньку разбираться и вникать в суть вопроса )))

Итого на вашем сайте ради 1 ползунка будет подключена 2 библиотеки и 1 плагин.
А еще столько же будет на слайдере, модальных окнах и других элементах.
Это к вопросу о быстродействии сайтов

Как сделать чтобы ползунок с диапазоном увеличивался логарифмически или разделить на 2 части и более (например): в 1 части значения 10 — 1000 и шаг 10, во 2 части 1000 — 100 000 шаг 1000?

Сделать 2 ползунка 🙂
Или пробывать через события, что если значение больше 1000, то меняем шаг.

Спасибо за ответ. В итоге noUiSlider все решает 😉

Как сделать, чтобы при вводе в input минимального и максимального значения изменялось положение ползунка? При этом, если ввести min > max, то они менялись местами

Есть в ползунка и их вывод, как их объединить в один вывод?

Есть 2* ползунка

А зачем их объединять в 1 вывод?
Если они полностью идентичны, можно привязать слайдер к классу, а не к айди.

Привет! Спасибо за статью! Работает во всех браузерах , кроме IE11. Это важно, так как задача стоит адаптировать сайт под все браузеры, и под IE11 в том числе (будь он неладен). Подскажи, плиз, как это сделать?

Да вроде как сладер этот поддерживается IE11, но проверить не могу, у меня его нет.

У вас неплохой сайт) Спасибо за информацию,как разработчик/чуток дизайнер могу выразить свою благодарность за внимание к мелочам(анимашки и переходы на js-сине) 🙂

Приветствую всех.
Помоги с решением моей микро задачи )))
Есть вертикальный слайдер, есть min и max — 0 и 100.
Задача, сделать чтобы ползунок никогда не доходит до своего минимума и максимума, а останавливался допустим на значениях 5 и 95 и на полосе прокрутки при максимальных и минимальных значения всегда оставались маленькие "хвостики"
Это реально сделать?

Если min стоит 0, то он и будет идти на 0, если нужно 5 минимальное, то нужно поставить 5. Соотв. и max тоже.
А чтобы хвостик оставался можно сделать псевдо шкалу, которую можно растянуть и оформить как угодно.

Псевдо шкала? А как её сделать? В двух словах ))

Шкала слайдера прозрачная, а под ней альтернативная, нужного размера и оформления.

Спасибо за идею, сделал ))
И тут же вопросик возник ), при адаптации только у меня не работает ползунок, двигать можно только нажатием на линию скроллинга?

Это на тачпадах? Для етого патч есть

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

А нужкн ли для такой задачи вообще ползунок?
Он как бы изначально же подразумевает значение ОТ и ДО
А у нас это значение не известно, оно может быть и 5 и 5 000 000.
Тут, как мне кажется, нужно просто сделать поле для ввода этого значения.

Пдскажите, как использовать несколько слайдеров на одной странице?
В таком варианте не работает

У вас во втором слайдере перепутаны значения max и min в его настройках

Статья весьма крутая! Мне нужна подсказка, как сделать один ползунок при передвижении которого меняется два разных значения?

Читайте также: