Примеры бесплатных JQuery слайдеров для изображений. Простой адаптивный тач jQuery слайдер Слайдер с эффектом приближения


Это адаптивный тач слайдер, написанный на jQuery. В движке данного плагина используются CSS3 анимации, но в то же время, предусмотрены фолбэки для более старых версий браузеров. Glide.js прост и легковесен.

Использование 1. Подключаем jQuery

Единственная зависимость плагина - это jQuery, который мы должны подключить в первую очередь:

2. Подключаем Glide.js

3. Добавляем html

Подключим базовые стили.

Накатаем html структуру слайдера.

4. Инициализация

Запускаем слайдер с настройками по умолчанию...

$(".slider").glide();

… или настраиваем его под себя

$(".slider").glide({ autoplay: 5000, arrows: "body", nav: "body" });

Настройки

Список доступных параметров:

Параметр Значение по умолчанию Тип Описание
autoplay 4000 int/bool Автопрокрутка (false для отключения)
hoverpause true bool Приостанавливать автопрокрутку при наведении мыши на слайдер
animationTime 500 int !!! Данная опция работает, если браузер НЕ поддерживает css3. Если css3 поддерживается браузером, то данный параметр нужно изменить в.css файле!!!
arrows true bool/string Показать/скрыть/прикрепить стрелки. True для отображения стрелок в контейнере слайдера. False для скрытия. Так же можете указать название класса (пример: ".class-name") для прикрепления особого html кода
arrowsWrapperClass slider-arrows string Класс, который присвоится контейнеру с стрелками
arrowMainClass slider-arrow string Основной класс для всех стрелок
arrowRightClass slider-arrow--right string Класс для правой стрелки
arrowLeftClass slider-arrow--left string Класс для левой стрелки
arrowRightText next string Текст для правой стрелки
arrowLeftText prev string Текст для левой стрелки
nav true bool/string Показать/скрыть/прикрепить навигацию по слайду. True для отображения. False для скрытия
navCenter true bool Навигация по центу
navClass slider-nav string Класс для контейнера навигации
navItemClass slider-nav__item string Класс для элемента навигации
navCurrentItemClass slider-nav__item--current string Класс для текущего элемента навигации
keyboard true bool Прокручивать слайд при нажатии на кнопки налево/направо
touchDistance 60 int/bool Поддержка прикосновения (тач). False для отключения данной возможности.
beforeInit function(){} function Колбэк, который запустится перед инициализацией плагина
afterInit function(){} function Колбэк, который запустится после инициализацией плагина
beforeTransition function(){} function Колбэк, который запустится перед прокруткой слайдера
afterTransition function(){} function Колбэк, который запустится после прокрутки слайдера
API

Для использования API, запишите glide в переменную.

Var glide = $(".slider").glide().data("api_glide");

Теперь вам доступны API методы.

Glide.jump(3, console.log("Wooo!"));

  • .current() - Возврат номера текущего сайда
  • .play() - Начать автопрокрутку
  • .pause() - Остановить автопрокрутку
  • .next(callback) - Пролистнуть слайдер вперёд
  • .prev(callback) - Пролистнуть слайдер назад
  • .jump(distance, callback) - Переключиться на определённый слайд
  • .nav(target) - Прикрепить навигацию к определённому элементу (к примеру: "body", ".class", "#id")
  • .arrows(target) - Прикрепить стрелки к определённому элементу (к примеру: "body", ".class", "#id")

Здравствуйте, дорогие читатели блога. Сегодня представляю Вам полезную подборку бесплатных JQuery слайдеров с примерами . Если Вы всё таки надумали поставить слайдер изображений на свой ресурс, эта подборка Вам очень пригодится, и, поверьте, вам есть с чего выбрать. Тем более все слайдеры с примерами, и каждый из них Вы сможете попробовать в действии. В общем не буду отвлекать, выбирайте:-)

Простой JQuery слайдер изображений

Самый обычный и не большой слайдер миниатюр на Вашем сайте.

Слайдер с миниатюрами на JQuery

Очень простой и интересный слайдер с миниатюрами, который подойдёт практически для любого дизайна.

Красивый слайдер для сайта

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

Обычный JQuery слайдер

Самый обычный и простой слайдер на Ваш ресурс

Большой слайдер с описанием

Эффектный слайдер мимо которого нереально пройти.

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

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

Скроллинг изображений с подсказками

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

JQuery слайдер с большими стрелками

Интересный слайдер с большими розовыми стрелками, которые меняют размер за счёт увеличения изображения.

Вы пытаетесь показать пользователям столько, сколько максимально вы можете, но вы хотите донести эту информацию организованным и чистым способом. Поэтому мы создали для вас готовый к использованию слайдер jQuery с некоторыми встроенными опциями, такими как фон видео / изображений и различные выравнивания текста. В попытке увеличить взаимодействие с пользователем мы заменили «навигационные стрелки» на кнопки. Разница заключается в следующем: кнопки имеют заголовок, подсказку о том, какой контент ожидать. Стрелки просто говорят пользователям «вы можете переключать слайд».

Создание структуры

HTML структурирован в 2 основных элемента: неупорядоченный список ul.cd-hero-slider , содержащий слайды, и div.cd-slider-nav , содержащий навигацию ползунка и маркер span.cd (используемый для создания Маркер выбранного элемента в навигации).












  • Intro

  • Tech 1





Добавление стиля

Структура слайдера довольно проста: все слайды переведены вправо, вне окна просмотра translateX (100%) ; Выбранный класс добавляется в видимый слайд, чтобы переместить его обратно в окно просмотра translateX (0) , а класс.move-left используется для перевода слайда влево translateX (-100%) .

Для достижения гладкой анимации мы использовали переходы CSS3, применяемые к элементу.selected и.is-moving: при выборе нового слайда класс.is-moving присваивается слайду, движущемуся за пределами области просмотра, в то время как выбранный Класс присваивается выбранному слайду.

Cd-hero-slider li { position: absolute; top: 0; left: 0; width: 100%; height: 100%; transform: translateX(100%); } .cd-hero-slider li.selected { /* this is the visible slide */ position: relative; transform: translateX(0); } .cd-hero-slider li.move-left { /* slide hidden on the left */ transform: translateX(-100%); } .cd-hero-slider li.is-moving, .cd-hero-slider li.selected { /* the is-moving class is assigned to the slide which is moving outside the viewport */ transition: transform 0.5s; }

О одиночной анимации слайдов: на больших устройствах (ширина видового экрана более 768 пикселей) мы решили оживить эффект входа, оживляя отдельные слайдовые элементы.cd-half-width и.cd-full-width , изменяя их непрозрачность и Преобразовать свойства.

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

Для элементов.cd-half-width , например:

@media only screen and (min-width: 768px) {
.cd-hero-slider .cd-half-width {
opacity: 0;
transform: translateX(40px);
}
.cd-hero-slider .move-left .cd-half-width {
transform: translateX(-40px);
}
.cd-hero-slider .selected .cd-half-width {
/* this is the visible slide */
opacity: 1;
transform: translateX(0);
}
.cd-hero-slider .is-moving .cd-half-width {
/* this is the slide moving outside the viewport
wait for the end of the transition on the

  • parent before set opacity to 0 and translate to 40px/-40px */
    transition: opacity 0s 0.5s, transform 0s 0.5s;
    }
    .cd-hero-slider li.selected.from-left .cd-half-width:nth-of-type(2),
    .cd-hero-slider li.selected.from-right .cd-half-width:first-of-type {
    transition: opacity 0.4s 0.2s, transform 0.5s 0.2s;
    }
    .cd-hero-slider li.selected.from-left .cd-half-width:first-of-type,
    .cd-hero-slider li.selected.from-right .cd-half-width:nth-of-type(2) {
    /* this is the selected slide - different animation if it"s entering from left or right */
    transition: opacity 0.4s 0.4s, transform 0.5s 0.4s;
    }
    }

    Обработка событий

    Видео, используемое в качестве фона для одного из слайдов, не вставлено непосредственно в HTML, а загружается, только если ширина устройства больше 768 пикселей; Таким образом, видео не будет загружено на мобильные устройства. Видеоданные выбранного слайда используются для извлечения видеоролика. Вы можете сделать то же самое для элементов внутри контейнера.cd-img (который скрыт на мобильных устройствах).

    Кроме того, мы использовали jQuery для реализации функциональности слайд-шоу: когда пользователь щелкает один из элементов списка вкладки.cd-slider-nav , мы обнаруживаем позицию выбранного элемента (используя функцию index ()) и обновляем слайдер (Используя функции nextSlide () или prevSlide () в соответствии с этой позицией) и положение span.cd-marker .

    $(".cd-slider-nav li").on("click", function(event){ event.preventDefault(); var selectedItem = $(this); if(!selectedItem.hasClass("selected")) { // if it"s not already selected var selectedPosition = selectedItem.index(), activePosition = $(".cd-hero-slider .selected").index(); if(activePosition

    Примечание!

    Если вы хотите анимировать слайдер автоматически, добавьте класс.autoplay в элемент ul.cd-hero-slider .

    SliderPro - адаптивный jQuery слайдер c поддержкой миниатюр и другими настройками, включая также и собственное API.

    • Слайдер по умолчанию подстраивается под размеры экрана. Масштабироваться будут не только изображения, но и слои с вашим дополнительным контентом.
    • Поддержка touch-swipe событий для сенсорных экранов. Использование Breakpoints - аналог CSS media queries, для изменения настроек слайдера на различных размерах экрана.
    • Плавная анимация с помощью css3 transitions, анимация слоев, fade эффект для смены слайдов.
    • Слайдер может быть на всю ширину страницы, на весь экран или располагаться внутри контейнера.
    • Автоизменение высоты слайда. Ориентация превьюшек может быть, как вертикальная, так и горизонтальная.
    • Для изображений поддерживается lazy loading, retina, возможность подгружать различные изображения под конкретные размеры экранов.
    • Поддержка видео, интеграция с lightbox, навигация стрелками, точками, клавиатурой, миниатюрами и многое, многое другое.
    CSS

    Подключаем файл стилей:

    HTML

    Пример разметки для вставки слайдера:

    Lorem ipsum dolor sit amet

    Lorem ipsum dolor sit amet

    consectetur adipisicing elit

    JS

    Подключаем необходимые скрипты:

    Выполняем инициализацию плагина:

    jQuery(document).ready(function($) { $("#my-slider").sliderPro(); });

    Более подробно о слайдере и его использовании можно найти на гитхабе. Ссылка ниже.

    В этой статье разберём как можно очень просто с помощью CSS Flexbox и CSS трансформаций создать адаптивный слайдер для сайта.

    Исходные коды и демо слайдера

    Проект слайдера под названием chiefSlider расположен на GitHub. Перейти на него можно по этой ссылке .

    Слайдер с одним активным слайдом (без зацикливания):

    Слайдер с тремя активными слайдами (без зацикливания):





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



    Преимущества слайдера chiefSlider

    Перечислим основные преимущества данного слайдера:

    • во-первых, он не создаёт клоны элементов (item) для организации зацикливания, как это реализовано, например, в плагинах OwlCarousel и slick ;
    • во-вторых, он не зависит от библиотеки jQuery ; это не только убирает дополнительные требования, но и делает его более лёгким;
    • в-третьих, он практически не вносит никакие изменения в DOM документа ; единственное, что он делает - это добавляет или изменяет значения CSS трансформаций у элементов слайдера;
    • в-четвертых, он содержит только минимальный набор функций ; дополнительный функционал можно добавить в зависимости от задачи;
    • в-пятых, он является адаптивным , т.е. его можно использовать на любых сайтах; адаптивность слайдера настраивается с помощью CSS;
    • в-шестых, количество активных элементов настраивается с помощью CSS; это означает, что его можно использовать для создания карусели как с одним активным слайдом, так и с любым другим их количеством.
    Установка слайдера chiefSlider

    Установка слайдера выполняется за 3 шага:

    • добавить CSS слайдера chiefSlider на страницу или в CSS-файл, подключённый к странице;
    • поместить HTML код слайдера в необходимое место страницы;
    • вставить JavaScript код на страницу или в js-файл, подключённый к странице.

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

    Как разработать простой слайдер для сайта (без зацикливания)

    Создание слайдера chiefSlider будет состоять из создания HTML кода, CSS и JavaScript (без jQuery).

    HTML код слайдера chiefSlider :

    Как видно, слайдер имеет очень простую HTML архитектуру. Начинается она с основного блока, который имеет класс slider . Данный блок состоит из 3 элементов.

    Первый элемент - это.slider__wrapper . Он выступает в качестве обёртки для элементов.slider__item (слайдов).

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

    CSS код слайдера chiefSlider :

    /* ОСНОВНЫЕ СТИЛИ */ .slider { position: relative; overflow: hidden; } .slider__wrapper { display: flex; transition: transform 0.6s ease; /* 0.6 длительность смены слайда в секундах */ } .slider__item { flex: 0 0 50%; /* определяет количество активных слайдов (в данном случае 2 */ max-width: 50%; /* определяет количество активных слайдов (в данном случае 2 */ } /* СТИЛИ ДЛЯ КНОПОК "НАЗАД" И "ВПЕРЁД" */ .slider__control { position: absolute; display: none; top: 50%; transform: translateY(-50%); align-items: center; justify-content: center; text-align: center; width: 40px; /* ширина кнопки */ height: 50px; /* высота кнопки */ opacity: .5; /* прозрачность */ background: #000; /* цвет фона */ } .slider__control_show { display: flex; } .slider__control:hover, .slider__control:focus { text-decoration: none; outline: 0; opacity: .9; /* прозрачность */ } .slider__control_left { left: 0; } .slider__control_right { right: 0; } .slider__control::before { content: ""; display: inline-block; width: 20px; /* ширина иконки (стрелочки) */ height: 20px; /* высота иконки (стрелочки) */ background: transparent no-repeat center center; background-size: 100% 100%; } .slider__control_left::before { background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns="http://www.w3.org/2000/svg" fill="%23fff" viewBox="0 0 8 8"%3E%3Cpath d="M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z"/%3E%3C/svg%3E"); } .slider__control_right::before { background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns="http://www.w3.org/2000/svg" fill="%23fff" viewBox="0 0 8 8"%3E%3Cpath d="M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z"/%3E%3C/svg%3E"); }

    Как видно, CSS код слайдера тоже является не очень сложным . Основные определения, с помощью которых можно настроить внешний вид слайдера, снабжены комментариями .

    CSS код, который определяет количество активных элементов :

    /* определяет количество активных слайдов (в данном случае 2) */ flex: 0 0 50%; max-width: 50%;

    Этот код устанавливает слайдеру число активных элементов, равное 2.

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

    /* определяет количество активных слайдов (в данном случае 1) */ flex: 0 0 100%; max-width: 100%;

    Создание адаптивного слайдера осуществляется посредством медиа запросов.

    Например , слайдер, который на устройствах с крохотным экраном должен иметь один активный слайд, а на больших - четыре:

    Slider__item { flex: 0 0 100%; max-width: 100%; } @media (min-width: 980px) { .slider__item { flex: 0 0 25%; max-width: 25%; } }

    JavaScript код слайдера chiefSlider :

    "use strict"; var multiItemSlider = (function () { return function (selector) { var _mainElement = document.querySelector(selector), // основный элемент блока _sliderWrapper = _mainElement.querySelector(".slider__wrapper"), // обертка для.slider-item _sliderItems = _mainElement.querySelectorAll(".slider__item"), // элементы (.slider-item) _sliderControls = _mainElement.querySelectorAll(".slider__control"), // элементы управления _sliderControlLeft = _mainElement.querySelector(".slider__control_left"), // кнопка "LEFT" _sliderControlRight = _mainElement.querySelector(".slider__control_right"), // кнопка "RIGHT" _wrapperWidth = parseFloat(getComputedStyle(_sliderWrapper).width), // ширина обёртки _itemWidth = parseFloat(getComputedStyle(_sliderItems).width), // ширина одного элемента _positionLeftItem = 0, // позиция левого активного элемента _transform = 0, // значение трансформации.slider_wrapper _step = _itemWidth / _wrapperWidth * 100, // величина шага (для трансформации) _items = ; // массив элементов // наполнение массива _items _sliderItems.forEach(function (item, index) { _items.push({ item: item, position: index, transform: 0 }); }); var position = { getMin: 0, getMax: _items.length - 1, } var _transformItem = function (direction) { if (direction === "right") { if ((_positionLeftItem + _wrapperWidth / _itemWidth - 1) >= position.getMax) { return; } if (!_sliderControlLeft.classList.contains("slider__control_show")) { _sliderControlLeft.classList.add("slider__control_show"); } if (_sliderControlRight.classList.contains("slider__control_show") && (_positionLeftItem + _wrapperWidth / _itemWidth) >= position.getMax) { _sliderControlRight.classList.remove("slider__control_show"); } _positionLeftItem++; _transform -= _step; } if (direction === "left") { if (_positionLeftItem position.getMax()) { nextItem = position.getItemMin(); _items.position = position.getMax() + 1; _items.transform += _items.length * 100; _items.item.style.transform = "translateX(" + _items.transform + "%)"; } _transform -= _step; } if (direction === "left") { _positionLeftItem--; if (_positionLeftItem < position.getMin()) { nextItem = position.getItemMax(); _items.position = position.getMin() - 1; _items.transform -= _items.length * 100; _items.item.style.transform = "translateX(" + _items.transform + "%)"; } _transform += _step; } _sliderWrapper.style.transform = "translateX(" + _transform + "%)"; }

    На самом деле здесь всё просто.

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

    Если такой элемент в массиве есть , то выполняется трансформация элемента.slider__wrapper (т.е. действия, как и в алгоритме без зацикливания).

    А вот если такого элемента нет , то кроме трансформации.slider__wrapper , выполняется ещё ряд действий . Во-первых , в массиве items ищется элемент с минимальной позицией . После получения этого элемента, ему устанавливается позиция, значение которой будет равно значению текущего правого элемента + 1 . Ну и конечно выполняется его трансформация , на такое количество процентов, чтобы он оказался в конце , т.е. после последнего элемента.


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


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

    Чтобы это выполнить необходимо:

    • удалить класс slider__control_show у элемента управления "Вправо";
    • в CSS для селектора.slider__control изменить значение свойства display на flex .
    Демо слайдера Как создать слайдер с зацикливанием и автоматической сменой слайдов?

    Запрограммировать автоматическую смену слайдов через определённые промежутки времени можно с помощью функции setInterval .

    Var _cycle = function (direction) { if (!_config.isCycling) { return; } _interval = setInterval(function () { _transformItem(direction); }, _config.interval); }

    Функция setInterval в этом примере будет запускать функцию _transformItem через определённые интервалы времени, равные значению переменой _config.interval .

    Кроме этого остановку автоматической смены слайдов желательно ещё добавить при поднесении курсора к слайдеру.

    Осуществить этот функционал можно следующим образом:

    If (_config.pause && _config.isCycling) { _mainElement.addEventListener("mouseenter", function () { clearInterval(_interval); }); _mainElement.addEventListener("mouseleave", function () { clearInterval(_interval); _cycle(_config.direction); }); }

    Как остановить автоматическую смену слайдов, если элемент не виден пользователю?

    Отключить автоматическую смену слайдов целесообразно в двух случаях:

    • когда страница (на которой расположен данный слайдер) является не активной;
    • когда слайдер находится за пределами области видимости страницы.

    Обработку первого случая можно осуществить с помощью события visibilitychange .

    Document.addEventListener("visibilitychange", _handleVisibilityChange, false);

    Функция для обработчика события visibilitychange:

    // обработка события "Изменения видимости документа" var _handleVisibilityChange = function () { if (document.visibilityState === "hidden") { clearInterval(_interval); } else { clearInterval(_interval); _cycle(_config.direction); } }

    Вычисление видимости элемента можно организовать с помощью функции _isElementVisible:

    Function _isElementVisible(element) { var rect = element.getBoundingClientRect(), vWidth = window.innerWidth || doc.documentElement.clientWidth, vHeight = window.innerHeight || doc.documentElement.clientHeight, elemFromPoint = function (x, y) { return document.elementFromPoint(x, y); }; if (rect.right < 0 || rect.bottom < 0 || rect.left > vWidth || rect.top > vHeight) { return false; } return (element.contains(elemFromPoint(rect.left, rect.top)) || element.contains(elemFromPoint(rect.right, rect.top)) || element.contains(elemFromPoint(rect.right, rect.bottom)) || element.contains(elemFromPoint(rect.left, rect.bottom))); }

    Поместить вызов _isElementVisible можно, например, в начало функции _transformItem . Это действие позволит отменить автоматическую смену слайдов, если слайдер в данный момент находится вне viewport .

    Var _transformItem = function (direction) { var nextItem; if (!_isElementVisible(_mainElement)) { return; } //...

    Слайдер, реагирующий на изменение размеров окна браузера

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

    Реализовано это с помощью использования события resize и массива _states . Массив используется для вычислений. Его применение позволит не выполнять переинициализацию слайдера, когда это не требуется.