Как создать карусель, используя только HTML и CSS без JavaScript! Самый удачный jQuery плагин карусели

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

В проектах, с которыми мы работали, была карусель. У нас были идеи о том, как мы можем сделать эту работу, используя CSS-анимации и transform property, но это дало бы карусель, прокручивающуюся автоматически и не разрешающую пользовательский ввод, что мам не было нужно. Немного подумав, мы приняли решение, которое использует абсолютное позиционирование и:target псевдо-селектор для изменения z-index и opacity нашей карусели, чтобы циклировать через них.

Давайте создадим такое!

Структура

Структура нашей карусели выглядит примерно так: у нас есть главный div.carousel-wrapper, который дает нашей карусели размер. Внутри нашей оболочки, у нас есть span.hidden-target элементы с уникальными идентификаторами, которые действуют в качестве мишеней для наших пунктов управления карусели и div.carousel-item элементов, которые содержат контент каждого из пунктов карусели.

Каждый из div.carousel-item элементов будет иметь контент, и две ссылки, a.arrow-prev и a.arrow-next, который мы используем для цикла между элементами карусели.

Потому что наши отдельные элементы карусели будут position: absolute (мы можем сложить их на вершине друг друга), мы должны установить высоту div.carousel-wrapper вручную. Мы собираемся попытаться разгрузить CSS к нашей внешней таблицы стилей, но некоторые из пунктов мы должны будем написать, чтобы сделать нашу карусель используемой и масштабируемой.

Мы также используем CSS, чтобы установить фоновое изображение из двух наших div.carousel-item элементов, чтобы сделать их более яркими, но мы оставим это ниже, чтобы наша разметка была более читаемой.

Вот и весь HTML. Он удивительно легкий. В CSS (SCSS, в данном случае), вот где происходит волшебство.

Стили

У вас есть карусель, которая полностью функциональна и на 100% состоит из HTML и CSS! Мы создали карусель с тремя элементами, но вы можете продолжать добавлять элементы, убедитесь, что вы добавляете больше целевых элементов, и связываете ваши ссылки правильно.

/* Here"s where our carousel begins, with the main wrapper being relatively positioned, so that our absolutely positioned items are in the right place. */ .carousel-wrapper { position: relative; /* Our absolutely positioned carousel items span the width and height of its parent. We"re making them transparent by default so that they fade in when we cycle through them using the arrow links. */ .carousel-item { position: absolute; top: 0; bottom: 0; left: 0; right: 0; padding: 25px 50px; opacity: 0; transition: all 0.5s ease-in-out; /* Did you notice the 50px left, right padding up above? It"s so we can position our arrow links! Each one will be 50px wide. Also, I"m using empty links with a background image so that the links look like arrows. Make sure you swap out that URL with an actual URL so that your arrow links aren"t just transparent rectangles. */ .arrow { position: absolute; top: 0; display: block; width: 50px; height: 100%; -webkit-tap-highlight-color: rgba(0,0,0,0); background: url("/carousel-arrow-dark.png") 50% 50% / 20px no-repeat; /* Let"s put our arrow to go back on the left. */ &.arrow-prev { left: 0; } /* And our arrow to go forward on the right. Since I"m using the same arrow image for both my arrows, I"m rotating this one by 180 degrees so that it points in the right direction */ &.arrow-next { right: 0; -webkit-transform: rotate(180deg); transform: rotate(180deg); } } /* I really like how these carousel items look on a dark image background, so if a .carousel-item div has the class "light", we"ll make its text color white, and use a white arrow instad of a dark gray one. Again, make sure this arrow image exists somewhere */ &.light { color: white; .arrow { background: url("/carousel-arrow-light.png") 50% 50% / 20px no-repeat; } } /* Let"s use using some media queries to resize the arrows on smaller devices.*/ @media (max-width: 480px) { .arrow, &.light .arrow { background-size: 10px; background-position: 10px 50%; } } } /* Let"s set our jump link targets display: none; so that we"re not making the browser jump to the top of the carousel whenever a user clicks on one of our arrow links. This attribute selector will target any element whose id starts with "target-item". */ { display: none; } /* So, up above we made all our carousel items transparent, which means that on page-load, we"d have a big empty box where our carousel should be. Let"s set our first item"s opacity to 1 so that it displays instead. Also, we"re setting its z-index to 2, so that it"s positioned on top of the other carousel items. */ .item-1 { z-index: 2; opacity: 1; } /* But we don"t want the first item to ALAWYS be opacity: 1; otherwise it would peek through when cycling between items two and above. */ *:target ~ .item-1 { opacity: 0; } /* ...but if #target-item-1 is targeted, well we do want the first item to show up, so we"re selecting it with the ~ sibling selector and setting its opacity to 1 again:-) */ #target-item-1:target ~ .item-1 { opacity: 1; } /* If any other target-item-# is targeted, let"s select it using the sibling selector, make it fade in, and place it on top of the pile using z-index: 3. Here"s where you"d add more target items if your carousel has more than three items. It might be worth adding like 10 items right off the bat. */ #target-item-2:target ~ .item-2, #target-item-3:target ~ .item-3 { z-index: 3; opacity: 1; } }

Высоких вам конверсий!

Когда я начал изучать эту тему, мне не нужна была трехмерная карусель, но я больше интересовался техническими деталями ее реализации. Разумеется, основные используемые методы, конечно же, относятся к модулю CSS Transforms Module Level 1 , но по мере того, как будет применена группа других технологий разработки переднего плана, затрагивая различные темы в CSS, Sass и клиентском JavaScript .

Демо

Чтобы проиллюстрировать настройку 3D-преобразований CSS, я покажу вам версию компонента только для CSS. Затем я покажу вам, как улучшить его с помощью JavaScript, разработав простой скрипт компонента.

Разметка для карусели с восемью изображениями

Для разметки изображения внутри компонента обернуты внутри

элемента, который обеспечивает базовый скелет:

Это будет нашим фундаментом.

Геометрическая структура карусели

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

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

Таким образом, количество сторон такого многоугольника совпадает с количеством изображений в карусели:
С тремя изображениями многоугольник является равносторонним треугольником;
С четырьмя изображениями это квадрат;
С пятью пятиугольниками; и так далее:

Что делать, если в карусели меньше трех изображений?

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

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

Таким образом, сторона, которая в настоящее время обращена к зрителю, будет находиться на плоскости экрана при z = 0, а переднее изображение, не подверженное перспективой ракурса, будет иметь свой обычный 2D размер. d Письмо на картинке представляет значение для CSS perspective свойства.

Построение геометрии карусели

В этом разделе я покажу вам ключевые правила CSS, которые я буду проходить шаг за шагом.

В следующих фрагментах кода некоторые переменные Sass используются, чтобы сделать компонент более настраиваемым. Я буду использовать, $n чтобы обозначить количество изображений в карусели и $item-width указать ширину изображения.

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

Carousel { display: flex; flex-direction: column; align-items: center; > * { flex: 0 0 auto; } .figure { width: $item-width; transform-style: preserve-3d; img { width: 100%; &:not(:first-of-type) { display: none /* Just for now */ } } } }

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

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

Карусель можно поворачивать в трехмерном пространстве, применяя преобразование вращения к

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

Carousel figure { transform-origin: 50% 50% (-$apothem); }

Это значение отрицается, потому что в CSS положительное направление оси z находится вне экрана, к зрителю. Скобки необходимы, чтобы избежать синтаксических ошибок Sass . Вычисление многоугольника apothem будет объяснено позже.

Переведя систему отсчета

элемента, вся карусель может поворачиваться с вращением на (новой) оси y:

Carousel figure { transform: rotateY(/* some amount here */rad); }

Я вернусь к деталям этого поворота позже.

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

:

Carousel figure img:not(:first-of-type) { position: absolute; left: 0; top: 0; }

Эти z-index значения игнорируются, потому что это только предварительный шаг для следующих преобразований. Фактически, теперь каждое изображение можно поворачивать по оси y карусели на угол поворота, который зависит от стороны многоугольника, на которой назначено изображение. Во-первых, как это делается с

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

Img:not(:first-of-type) { transform-origin: 50% 50% (-$apothem); }

Затем изображения могут поворачиваться на их новой оси y на величину, заданную ($i - 1) * $theta радианами, где $i индекс (начиная с одного) изображения и $theta = 2 * $PI / $n, $PI представляя математическую константу pi . Следовательно, второе изображение будет повернуто $theta третьим 2 * $theta , и так далее, до последнего изображения, которое будет повернуто ($n - 1) * $theta .

Это относительное расположение изображений будет сохранено во время поворотов карусели (т.е. Вращения вокруг измененной оси y

) благодаря иерархической природе вложенных преобразований CSS.

Это количество вращения каждого изображения может быть присвоено с помощью @for директивы управления Sass:

Carousel figure img { @for $i from 2 through $n { &:nth-child(#{$i}) { transform: rotateY(#{($i - 1) * $theta}rad); } } }

Это использует for...through конструкцию, а не for...to потому, что вместо for...to последнего значения, присвоенного переменной индекса $i , будет n-1 вместо n .

Обратите внимание на два примера #{} синтаксиса интерполяции Sass . В первом случае он используется для индекса:nth-child() селектора;
Во втором случае он используется для установки значения свойства вращения.

Вычисление Apothem

Вычисление апофемы полигона зависит от количества сторон и ширины стороны, то есть, на $n и $item-width переменных.
Формула:

$image-width / (2 * tan($PI/$n))

Где tan() - касательная тригонометрическая функция.

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

Расстояние между элементами карусели

На этом этапе изображения карусели «зашиты» бок о бок, образуя требуемую полигональную форму. Но здесь они плотно упакованы, а часто в трехмерных каруселях между ними есть пространство. Это расстояние повышает восприятие 3D-пространства, потому что оно позволяет вам видеть обратные изображения на задней части карусели.

Можно дополнительно добавить этот промежуток между изображениями, введя другую конфигурационную переменную $item-separation и используя ее в качестве горизонтальной прокладки для каждого элемента. Точнее, взяв половину этого значения для левого и правого заполнения:

Carousel figure img { padding: 0 $item-separation / 2; }

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

Вращение карусели

Чтобы облегчить тестирование поворота карусели, я собираюсь добавить элемент управления пользовательского интерфейса, чтобы перемещаться между изображениями. См. Демо-версию CodePen для HTML, CSS и JavaScript, реализующих этот элемент управления; Здесь я опишу только код, относящийся к вращению.

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

После обновления currImage , поворот карусели выполняется с помощью:

Figure.style.transform = `rotateY(${currImage * -theta}rad)`;

(Здесь и в следующих фрагментах литералы шаблонов ES6 используются для интерполяции выражений в строках, не стесняйтесь использовать традиционный оператор конкатенации «+», если вы предпочитаете)

Где theta то же самое, что и раньше:

NumImages = figure.childElementCount; theta = 2 * Math.PI / numImages;

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

Обратите внимание, что это currImageзначение не ограничено диапазоном , но вместо этого оно может расти бесконечно, как в положительном, так и в отрицательном направлении. На самом деле, если изображение на передней панели является последним (так currImage== n-1), и пользователь нажимает следующую кнопку, если мы переустановим currImageна 0, чтобы перейти к первому изображению карусели, произойдет переход Угол поворота от (n-1)*theta до 0, и это повернет карусель в противоположном направлении по всем предыдущим изображениям. Аналогичная проблема может возникнуть при нажатии кнопки prev, когда первое изображение является первым.

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

Увидев базовый CSS, лежащий в основе карусели, теперь JavaScript можно использовать для улучшения компонента несколькими способами, такими как:

  • Произвольное количество изображений
  • Изображения с процентной шириной
  • Несколько экземпляров карусели на странице
  • Конфигурации для каждого экземпляра, такие как размер зазора и видимость на обратной стороне
  • Конфигурация с использованием атрибутов данных HTML5 *

Сначала я удаляю из таблицы стилей переменные и правила, связанные с происхождением преобразования и поворотами, потому что это будет сделано с использованием JavaScript:

$item-width: 40%; // Now we can use percentages $item-separation: 0px; // This now is set with Js $viewer-distance: 500px; .carousel { padding: 20px; perspective: $viewer-distance; overflow: hidden; display: flex; flex-direction: column; align-items: center; > * { flex: 0 0 auto; } figure { margin: 0; width: $item-width; transform-style: preserve-3d; transition: transform 0.5s; img { width: 100%; box-sizing: border-box; padding: 0 $item-separation / 2; &:not(:first-of-type) { position: absolute; left: 0; top: 0; } } } }

Function carousel(root) { // coming soon... }

root Аргумент относится к элементу DOM , который содержит карусель.

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

Чтобы создать несколько компонентов на одной странице, код ожидает, что все изображения будут загружены, зарегистрировав слушателя на объекте окна для loadсобытия, а затем вызовет carousel() для каждого элемента с carouselклассом:

Window.addEventListener("load", () => { var carousels = document.querySelectorAll(".carousel"); for (var i = 0; i < carousels.length; i++) { carousel(carousels[i]); } });

carousel() Выполняет три основные задачи:

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

Перед рассмотрением кода настройки преобразования я рассмотрю некоторые ключевые переменные и как они инициализируются на основе конфигурации экземпляра:

Var figure = root.querySelector("figure"), images = figure.children, n = images.length, gap = root.dataset.gap || 0, bfc = "bfc" in root.dataset ;

Количество изображений (n) инициализируется в зависимости от количества дочерних элементов

элемента. Разделение между слайдами (gap) , инициализируется из data-gap атрибута HTML5 , если установлено. Флаг видимости обратной стороны (bfc) читается с использованием API набора данных HTML5. Это будет использоваться позже, чтобы определить, должны ли изображения на обратной стороне карусели быть видимыми или нет.

Настройка преобразований CSS

Код, который устанавливает свойства, связанные с преобразованиями CSS, инкапсулируется в setupCarousel(). Эта вложенная функция принимает два аргумента. Первое - количество элементов в карусели, то есть nвведенная выше переменная. Второй параметр s- длина стороны многоугольника карусели. Как я упоминал ранее, это равно ширине изображений, поэтому можно прочитать текущую ширину одного из них getComputedStyle():

SetupCarousel(n, parseFloat(getComputedStyle(images).width));

Таким образом, ширина изображения может быть задана с помощью значений процентов.

Window.addEventListener("resize", () => { setupCarousel(n, parseFloat(getComputedStyle(images).width)); });

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

Первое, что setupCarousel() нужно сделать, - вычислить apothem многоугольника, используя переданные параметры и ранее обсуждавшуюся формулу:

Apothem = s / (2 * Math.tan(Math.PI / n));

Затем это значение используется для изменения начала преобразования фигурного элемента для получения новой оси вращения карусели:

Figure.style.transformOrigin = `50% 50% ${-apothem}px`;

Затем применяются стили для изображений:

For (var i = 0; i < n; i++) { images[i].style.padding = `${gap}px`; } for (i = 1; i < n; i++) { images[i].style.transformOrigin = `50% 50% ${- apothem}px`; images[i].style.transform = `rotateY(${i * theta}rad)`; } if (bfc) { for (i = 0; i < n; i++) { images[i].style.backfaceVisibility = "hidden"; } }

Первый цикл присваивает пробел для пространства между элементами карусели. Второй цикл устанавливает 3D-преобразования. Последний цикл обрабатывает обратные грани, если соответствующий флаг был указан в конфигурации карусели.

Наконец, rotateCarousel() вызывается, чтобы перенести текущее изображение на передний план. Это небольшая вспомогательная функция, которая, учитывая индекс отображаемого изображения, поворачивает фигурный элемент по оси Y для перемещения целевого изображения вперед. Он также используется навигационным кодом для перехода туда и обратно:

Function rotateCarousel(imageIndex) { figure.style.transform = `rotateY(${imageIndex * -theta}rad)`; }

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

1. jQuery карусель «clickCarousel»

Блок с прокруткой анонсов новостей. Для прокрутки блоков используются стрелки влево/вправо. В архиве карусель в двух стилевых оформлениях: светлом и темном.

1. jQuery карусель, плагин «carouFredSel»

Аккуратная свежая карусель изображений на jQuery.

4. jQuery плагин: карусель «Elastislide»

5. Плагин «TinyCarousel»

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

Плагин «Slider Kit», легкая карусель с различными способами прокрутки.

7. javascript карусель

8. jQuery плагин «Grid Navigation Effects»

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

9. Легкая карусель

10. Карусель из блоков «Easy Paginate»

jQuery плагин «Easy Paginate». Каждый прямоугольный блок представляет собой обычный пункт списка li, при этом если пунктов больше трех, то чтобы просмотреть их все необходимо воспользоваться навигацией, подобной слайдеру (с помощью стрелок «вперед», «назад» и с помощью кнопок навигации внизу).

11. Вертикальный ротатор «Vertical Ticker»

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

12. javascript CSS прокручивающаяся область

javascript решение «TinyScroller» для создания прокручивающейся области, помещенной в контейнер DIV.

13. jQuery плагин «Smooth Div Scroll»

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

Навигация между слайдами с контентом может осуществляться с помощью стрелок или по нажатию на миниатюру. Снизу есть кнопка «Show», позволяющая скрыть/показать миниатюры или полное описание слайда.

15. Ротатор контента «Circular Content Carousel»

17. Скроллер

Блок со скроллером, появляющимся при наведении курсора. Прокручивать содержимое можно как с помощью полосы прокрутки, так и с помощью колеса мыши.

Подобное jQuery решение было сделано под впечатлением от подобного эффекта на сайте Apple . Разработчики этой корпорации всегда находили интересные решения, которыми вдохновлялись веб-мастера со всего мира. Для демонстрации плагина выберите из какую-нибудь категорию из списка.

19. Потрясающий слайдер

Слайдер генерируется автоматически. Данные с названием товара, описанием, ссылкой и адресом изображения берутся из файла slider.db.txt. Используемые технологии: CSS, PHP, jQuery.

20. Ротация блоков c использованием jQuery

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

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

22. Динамический блок «Отзывы клиентов»

Автоматическая ротация содержимого блока. Используемые технологии: PHP, XML, CSS, jQuery.

Этот плагин прообразовывает пункты списка (ul li) в элементы jQuery карусели.

26. javascript карусель «ImageFlow»

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

27. Прокручивание контента

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

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

33. Прокрутка содержимого, Mootools плагин «Scrollbar»

Прокручивание осуществляется как при помощи полосы прокрутки, так и с помощью колеса мыши.

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

1. Bootstrap Ambilight Slider

Bootstrap Ambilight Slider – плагин для создания слайдеров/каруселей с эффектом окружающего свечения и функционалом Bootstrap.

2. jQuery TouchSwipe Carousel


jQuery -плагин TouchSwipe Carousel позволяет определять прикосновения к сенсорному экрану и имитировать нажатие клавиши мыши.

3. ItemSlide


ItemSlide.js представляет собой jquery -плагин для создания карусели, которая будет работать как на настольных ПК, так и на мобильных сенсорных устройствах.

4.


jquery -плагин для создания адаптивных каруселей/слайдеров.

5.


Полностью адаптивный и оптимизированный под мобильные устройства плагин jquery -каруселей. Для анимации здесь используются CSS3 -переходы, но также предусмотрен запасной вариант наjQuery . Плагин поддерживает неограниченное количество слайдов с любым типом контента. умеет взаимодействовать с клавиатурой, и при этом хорошо работает в большинстве браузеров, в том числе и мобильных.

6. SilverTrack


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

7. Owl Carousel 2


Owl Carousel 2 – полностью адаптивная карусель для jQuery/Zepto с поддержкой сенсорных экранов.

8. UtilCarousel


UtilCarousel – плагин jQuery -карусели с плавными переходами, реализованными за счет аппаратного ускорения. Он полностью адаптивен. Плагин поддерживает сенсорные экраны, и в нем используется трехмерная CSS3 -анимация с аппаратным ускорением. Благодаря этому плагин будет хорошо смотреться как на настольных ПК, так и на мобильных устройствах. Управлять UtilCarousel можно при помощи касаний, навигации или колесика мыши.

9. Slick


Slick представляет собой адаптивную jQuery -карусель, в которой есть все, что может понадобиться.

10. CodingJack 3D Carousel


Эта карусель поддерживается устройствами на iOS и Android и оснащена функционалом сенсорного перелистывания. Отлично смотрится на планшетах и смартфонах.

11. jQuery Slideshow


jQuery Slideshow представляет собой карусель и слайдер с поддержкой управления жестами на сенсорных устройствах. Архив плагина весит всего 2 килобайта.

12. FlimRoll


FlimRoll – миниатюрная jQuery -карусель, которая фокусирует внимание пользователя на определенном объекте, располагая его в центре экрана.

13. Tikslus


Tikslus представляет собой полностью адаптивную карусель на jQuery с множеством функций и свойств. А высокая адаптивность плагина позволяет не указывать размеры изображений. Кроме того, стоит отметить поддержку произвольной анимации, основанной на CSS3 -классах. Tikslus можно использовать с плагиномJquery Mobile .

14. Scrollbox


Scrollbox – простой, миниатюрный jQuery -плагин, который превращает списки в карусель или бегущую строку.

15. Sky Touch Carousel


Sky Touch Carousel - плагин jQuery -карусели с богатым набором функций. Плагин адаптивен, поддерживает сенсорные экраны, и при этом работает быстро и плавно. Настройки позволяют изменять внешний вид карусели с помощью CSS .

16.


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