Jquery вертикальный слайдер со стрелками и навигацией. Подборка адаптивных слайдеров

Нужен простой слайдер с автоматической прокруткой. Приступим...

Описание работы слайдера.

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

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

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

Когда слайдер доходит до конца, на место последнего слайда мгновенно помещается его копия из начала слайдера. Затем цикл снова повторяется. Таким образом создается иллюзия бесконечного слайдера.

HTML разметка

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

Стили слайдера .slider-box{ width : 320px ; height : 210px ; overflow : hidden ; } .slider{ position : relative ; width : 10000px ; height : 210px ; } .slider img{ float : left ; z-index : 0 ; }

Контейнер.slider-box задает размеры слайдера. С помощью свойства overflow:hidden скрываются все элементы которые не входят в область внутри элемента.

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

Слайды выравниваются с помощью свойства float:left.

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

Скрипт

Движение слайдов будет осуществляться с помощью плавного изменения свойства margin-left контейнера.slider.

$(function () { var width= $(".slider-box" ) .width () ; // Ширина слайдера. interval = 4000 ; // Интервал смены слайдов. $(".slider img:last" ) .clone () .prependTo (".slider" ) ; // Копия последнего слайда помещается в начало. $() .eq (1 ) .clone () .appendTo (".slider" ) ; // Копия первого слайда помещается в конец. // Контейнер.slider сдвигается влево на ширину одного слайда. setInterval("animation()" , interval) ; // Запускается функция animation(), выполняющая смену слайдов. } ) ; function animation() { var margin = parseInt($(".slider" ) .css ("marginLeft" ) ) ; // Текущее смещение блока.slider width= $(".slider-box" ) .width () , // Ширина слайдера. slidersAmount= $(".slider" ) .children () .length ; // Количество слайдов в слайдере. if (margin!= (- width* (slidersAmount- 1 ) ) ) // Если текущий слайд не последний, { margin= margin- width; // то значение margin уменьшается на ширину слайда. } else { // Если показан последний слайд, $(".slider" ) .css ("margin-left" , - width) ; // то блок.slider возвращается в начальное положение, margin=- width* 2 ; } $(".slider" ) .animate ({ marginLeft: margin} , 1000 ) ; // Блок.slider смещается влево на 1 слайд. } ;

В итоге получился простой слайдер с бесконечной автоматической прокруткой.

В этой статье разберём как можно очень просто с помощью 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 . Массив используется для вычислений. Его применение позволит не выполнять переинициализацию слайдера, когда это не требуется.

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

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

timeList - скорость переключения слайда

TimeView - время показа

RadioBut - кнопки под слайдом, для быстрой навигации. По умолчанию значение true, если использовать false, то кнопки пропадут.

А теперь давайте приступим! Создадим и откроем файл index.htm

В представленном коде как мы видим ничего сложного нет, slider-wrap определяет общее положение и выравнивает слайдер по середине экрана. Параметр active-slide задает размер и высоту картинки согласно ее длине. И slider показывает только активную картинку.

Теперь создадим и откроем файл style.css и пропишем туда нужную нам разметку:

@import url("https://fonts.googleapis.com/css?family=Open+Sans|Roboto"); body { color: #4f4f5a; font-family: "Roboto", sans-serif; font-size: 16px; padding: 0; margin: 0; } #slider-wrap{ max-width:800px; margin: 0 auto; margin-top: 80px; } #active-slide { width: 100%; display: table; position: relative; overflow: hidden; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; -o-user-select: none; user-select: none; } #slider{ position: relative; width: calc(100% * 4); top: 0; left: 0; margin: 0; padding: 0; -webkit-transition: 1s; -o-transition: 1s; transition: 1s; -webkit-transition-timing-function: ease-in-out; -o-transition-timing-function: ease-in-out; transition-timing-function: ease-in-out; } .slide{ width: calc(100%/4); list-style: none; display: inline; float: left; } .slide img { width:100%; } .Radio-But{ margin-top:10px; text-align:center; } .Radio-But .ctrl-select { margin:2px; display:inline-block; width:16px; height:16px; overflow:hidden; text-indent:-9999px; background:url(radioBg.png) center bottom no-repeat; } .Radio-But .ctrl-select:hover { cursor:pointer; background-position:center center; } .Radio-But .ctrl-select.active { background-position:center top; } #prewbutton, #nextbutton { display:block; width:40px; height:100%; position:absolute; top:0; overflow:hidden; text-indent:-999px; background: url("arrowBg.png") left center no-repeat; opacity:0.5; z-index:3; outline:none !important; } #prewbutton { left:10px; } #nextbutton { right:10px; background:url(arrowBg.png) right center no-repeat; } #prewbutton:hover, #nextbutton:hover { opacity:1; }

В свойстве стиля slider-wrap пропишите width – максимальную длину ваших картинок.

В свойстве стиля #slider { width: calc(100% * 4); } и .slide { width: calc(100%/4); } укажите количество картинок в вашем слайдере. В нашем примере их 4.

Если стрелки вперед/назад мешают видимости вашего слайдера их можно сделать невидимыми и появляться они будут при наведении. Для этого в параметрах prewBut и nextBut , задайте свойству opacity значение 0.

Теперь создадим и откроем наш файл slider.js , в котором и будет код слайдера. Не забудьте подключить библиотеку jQuery.

$(document).ready(function () { var timeList = 700; var TimeView = 5000; var RadioBut = true; var slideNum = 1; var slideTime; slideCount = $("#slider .slide").length; var animSlide = function(arrow){ clearTimeout(slideTime); if(arrow == "next"){ if(slideNum == slideCount) { slideNum=1; } else{slideNum++} translateWidth = -$("#active-slide").width() * (slideNum - 1); $("#slider").css({"transform": "translate(" + translateWidth + "px, 0)"}); } else if(arrow == "prew") { if(slideNum == 1) { slideNum=slideCount; } else{slideNum-=1} translateWidth = -$("#active-slide").width() * (slideNum - 1); $("#slider").css({"transform": "translate(" + translateWidth + "px, 0)"}); }else{ slideNum = arrow; translateWidth = -$("#active-slide").width() * (slideNum -1); $("#slider").css({"transform": "translate(" + translateWidth + "px, 0)"}); } $(".ctrl-select.active").removeClass("active"); $(".ctrl-select").eq(slideNum - 1).addClass("active"); } if(RadioBut){ var $linkArrow = $("") .prependTo("#active-slide"); $("#nextbutton").click(function(){ animSlide("next"); return false; }) $("#prewbutton").click(function(){ animSlide("prew"); return false; }) } var adderSpan = ""; $(".slide").each(function(index) { adderSpan += "" + index + ""; }); $("" + adderSpan +"").appendTo("#slider-wrap"); $(".ctrl-select:first").addClass("active"); $(".ctrl-select").click(function(){ var goToNum = parseFloat($(this).text()); animSlide(goToNum + 1); }); var pause = false; var rotator = function(){ if(!pause){slideTime = setTimeout(function(){animSlide("next")}, TimeView);} } $("#slider-wrap").hover(function(){clearTimeout(slideTime); pause = true;}, function(){pause = false; rotator(); }); var clicking = false; var prevX; $(".slide").mousedown(function(e){ clicking = true; prevX = e.clientX; }); $(".slide").mouseup(function() { clicking = false; }); $(document).mouseup(function(){ clicking = false; }); $(".slide").mousemove(function(e){ if(clicking == true) { if(e.clientX < prevX) { animSlide("next"); clearTimeout(slideTime); } if(e.clientX > prevX) { animSlide("prew"); clearTimeout(slideTime); } clicking = false; } }); $(".slide").hover().css("cursor", "pointer"); rotator(); });

Функция animSlide принимает три вида значений: next, prew, числовое значение. Параметр next переключает следующий слайд, prew возвращает предыдущий, а числовое значение это определенно заданный слайд, выбранный через радио кнопки под слайдом.

В представленном слайдере использовались картинки с веб-ресурса https://pixabay.com/.

Это адаптивный тач слайдер, написанный на 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")
1. jQuery плагин «Fresco»

Адаптивная jquery галерея (изменяет размер при изменении разрешения экрана), отображаемая во всплывающем окне с миниатюрами и подписями изображений. Jquery галерея «Fresco» корректно работает в большинстве браузеров в том числе: IE6+,Firefox 3+,Chrome 5+, Opera 9+. Бесплатная версия этого плагина может использоваться только на некоммерческих проектах.

2. Слайдер «Adaptor»


Слайдер с различными эффектами переходов (7 различных эффектов, в том числе 3D). Проект на Github .

3. Плагин слайдера с различными эффектами «jQ-Tiles»


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

4. jQuery плагин «Sly»


Плагин для реализации вертикального и горизонтального скроллера. Проект на Github .

5. Анимированное CSS3 меню «Makisu»


6. Простое слайд-шоу


7. Функциональный jQuery слайдер «iView Slider v2.0»


Слайдер контента/слайдшоу (в качестве слайда может быть не только изображения, а также видео ролики и другое HTML содержимое). Для навигации можно использовать: миниатюры, кнопок Влево/Вправо и с помощью клавиатуры. Проект на Github.com .

8. Набор jQuery плагинов «Vanity»


В наборе 7 плагинов: jSlider, jTabs, jPaginate, jSpotlight, jTip, jPlaceholder и jCollapse. Набор этих решений поможет вам в реализации слайдера, всплывающих подсказок, табов, всплывающих описаний изображений и др.

9. Hover CSS3 эффект


10. CSS3 выпадающее меню


11. iOSslider


Слайдер, заточенный под работу на мобильных устройствах.

12. CSS3 индикатор загрузки


13. CSS3 эффект при наведении


14. «Product Colorizer» jQuery плагин


Плагин является легким решением для реализации просмотра продуктов в различных цветовых вариантах (актуально, например, для интернет-магазинов одежды, чтобы дать посетителям выбрать цветовую гамму товара из нескольких вариантов). Для работы плагина необходимо только два изображения для каждого продукта (все цвета будут накладываться в виде маски). Плагин работает во всех основных браузерах, включая IE7 + (будет работать и в IE6, если вы пофиксите отображение прозрачности PNG). Проект на GitHub .

15. CSS3 анимированные диаграмы


16. Создание overlay-эффекта при нажатии на изображение


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

17. Навигация по странице в виде выпадающего меню


Решение для реализации удобной навигации по документу в виде выпадающего меню. Содержание зафиксировано сверху экрана и всегда остается в поле зрения посетителя. При выборе раздела в меню происходит плавная прокрутка страницы к выбранной части документа.

18. CSS3 галерея с эффектом при наведении


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

19. jQuery слайдер с Parallax эффектом


20. CSS3 анимация при наведении на блоки


21. CSS3 jQuery всплывающая панель

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

22. Бесплатная HTML5 галерея изображений «Juicebox Lite»


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

23. Плагин «JQVMap»


24. CSS3 слайдер с Parallax-эффектом


25. jQuery галерея фотографий с миниатюрами


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

26. jQuery плагин слайдера контента «Horinaja»


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

27. Плагин jQuery слайдера «Pikachoose»


В трех вариациях: реализация простой смены изображений без описания и миниатюр; слайдер с подписями изображений и миниатюрами; слайдер с миниатюрами и добавленным открытием увеличенного изображения во всплывающем окне с эффектом FancyBox. Последнюю версию всегда можно найти на Github .

28. Несколько пользовательских CSS стилизаций выпадающих списков


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

29. Ресторанное меню с анимированным 3D эффектом


Интересное CSS jQuery представление информации на странице. По нажатию на ссылку раскрывается буклет-меню и посетитель может во всплывающем окне прочитать подробнее о предоставленных блюдах. Анимация некорректно отображается в IE.

30. Плагин «Elastislide»


Реализация резиновой адаптивной карусели (вертикальная и горизонтальная карусель изображений) и галереи изображений. При уменьшении окна браузера уменьшается количество изображений до определенного минимального значения и далее масштабируется размер оставшихся изображений. Проект на Github .

31. Свежий CSS3 jQuery слайдер «Slit Slider»


Адаптивный плагин слайдера (ширину можно задавать в процентах и он автоматически смасштабируется) в двух стилевых исполнениях с интересным анимированным эффектом при смене слайдов (слайд разрубается пополам и разъезжается в разные стороны, а его место занимает новый). Возможна навигация с помощью клавиатуры. Свежая версия всегда на Github .

32. Новая версия 3D слайдера изображений «Slicebox»


Новая версия с внесенными изменениями и добавлением новых функций: теперь 3D слайдер стал масштабируемым, увидеть это можно при уменьшении окна браузера; добавлена поддержка Firefox; в описании к слайду уже можно использовать HTML контент (раньше описание подтягивалось из атрибута ссылки без возможности использовать в нем HTML теги). На демонстрационной странице можно посмотреть 4 варианта использования плагина. Последняя версия живет на Github.com .

Эффект очень похож на Flash галерею 3D CU3ER (демо , скачать), только выполнен этот 3D слайдер не с помощью flash технологий, а с помощью javascript.

33. jQuery плагин «PFold»


Экспериментальное решение. Плагин реализует 3D эффект с имитацией разворачивания записки. Различные варианты исполнения: с тремя разворотами, с двумя разворотами и разворот с последующим центрированием развернутой записки.

34. jQuery плагин «Windy»


Плагин для навигации по контенту, например по изображениям. При пролистывании фотографий они разлетаются в разные стороны (эффект чем-то напоминает раздачу карт в карточной игре покер). Для навигации можно использовать кнопки влево/вправо или ползунок (смотрите разные варианты на демонстрационной странице). Проект на