Как сделать анимацию для слайдера на css?
Привет!
Как можно сделать анимацию для слайдера на css, переключение осуществляется стрелками, слайды должны смещать друг друга. Сами слайды подгружаются аяксом. Сейчас загвоздка в стилях. Пробовал через keyframes, но не вышло как нужно. Слайдер выезжающий сверху, получает класс top, слайдер снизу, bottom. Какими стилями это можно сделать? Пример как должно быть.
Отслеживать
задан 22 мая 2017 в 5:26
673 1 1 золотой знак 6 6 серебряных знаков 19 19 бронзовых знаков
для такого перехода лучше использовать transition: top .3s , хотя анимировать лучше не положение а transform
22 мая 2017 в 5:55
а можете пример показать? Т.е. этот вариант без кейфреймов? И анимация через top?
22 мая 2017 в 5:58
Да, без кейфреймов, обычная линейная анимация. Вы бы добавили что у вас получилось. Логика в том что когда у верхнего нет класса top, то css в нем top: -100vh , когда добавляете класс top, то top: 0
Слайдер на CSS
Хочу рассказать простой способ создания слайдера, без использования JS, при помощи анимации CSS.
1) Для начала напишем HTML, предположим что в слайдере будут сменять друг друга 4 изображения.
2) Далее оформим размеры блока, и еще несколько настроек, position: relative необходимо для того, чтобы создать контекст форматирования, дальше будет понятно зачем.
.slider
3) Также определим некоторые свойства для самих слайдов:
.slide
Как видно из CSS мы размещаем все слайды в верхнем левом углу слайдера, задавая, таким образом, одинаковую исходную позицию.
4) Далее нужно определить каким именно образом слайды будут сменять друг друга, не создавая разрывов – для каждого слайда я решил использовать следующую последовательность действий:
1. Слайд находится на исходной позиции, демонстрируется пользователю
2. Слайд двигается влево, пока полностью не выйдет за границу слайдера (у слайдера же, как выше указано, overflow: hidden, соответственно слайд не наезжает на окружающие объекты).
3. Далее слайд двигается наверх, пока нижняя граница слайда выйдет за верхнюю границу слайдера
4. Далее слайд двигается вправо, пока левая граница слайда, не выйдет за правую границу слайдера
5. Слайд спускается вниз на один уровень со слайдером
6. Слайд двигается на исходную позицию
Иначе говоря (кадры пока назову согласно номерам из списка выше):
@keyframes slide < from < top: 0; left: 0; >1 < transform: translate(0px, 0px); >2 < transform: translate(-500px, 0); >3 < transform: translate(-500px, 300px); >4 < transform: translate(500px, 300px); >5 < transform: translate(500px, 0); >to < transform: (0px, 0px); >>
5) Итак, стало понятно, как выглядит траектория слайда. Каждый слайд «объезжает» вокруг своего контейнера – слайдера – и возвращается на исходную. Таким образом мы можем бесконечно крутить любое количество слайдов. Но остался один нюанс, который является самым важным в этой схеме – время. Нужно правильно рассчитать раскадровку анимации по времени и установить правильную задержку для каждого слайда, чтобы не все одновременно ринулись анимироваться. Для того чтобы понять, как правильно выставит задержку и рассчитать время анимации, я пошел нижеописанным путем.
Давайте возьмем обозначения шагов из предыдущего пункта и разберемся что же происходит в каждом шаге. По сути, шаги №1, 2 и 6 – это те шаги, в которых слайд заходит в видимую область. Из того, что слайды должны двигаться неразрывно и, как бы, выталкивать друг друга из слайдера, можно заключить, что длительность шагов 2 и 6 должна быть равна. Сразу оговорюсь, что мне удалось удачно работать эту конструкцию только при том условии, что длительность первого шага также равна длительности 2-го и 6-го. То, что происходит во время шагов 3,4 и 5 – по сути, технические нужды, и для простоты, давайте объединим эти три шага в 1.
После упрощения имеем:
1. Шаг – слайдер демонстрируется на исходной
2. Шаг – слайдер сдвигается вправо
3. Шаг – слайдер совершает технические перемещения
4. Шаг – слайдер сдвигается влево, возвращаясь на исходную позицию
Для обеспечения безразрывного показа слайдов, в момент, когда слайд приступает к шагу 2, следующий слайд должен приступить к шагу 4.

Для того чтобы посчитать процент необходимого времени на каждую стадию, так сказать, вывел небольшую формулу, которая работает при условии, что 1,2 и 4 шаг равны.
Если время, на круг всей анимации – t;
Кол-во слайдов – n;
Длительность 3 шага – y;
Длительность шагов 1,2 и 4 – x;
Шаг задержки анимации для n-слайда – z;
То:
y = (100 * n — 150)/n;
x = (100 – y) / 3;
x и y необходимо перевести в проценты, и тогда:
z = 2 * x * t;
Для случая, когда n = 4, как в примере выше, получаем:
3-ий шаг – 62,5%, 1, 2 и 4-ый — по 12,5%. Шаг задержки анимации для каждого последующего слайда – 25%.
Какие интервалы будут между этапами внутри третьего шага – не имеет значения.
6) Теперь, когда мы все посчитали и знаем все величины можно привести финальный код.
@keyframes slide < from < top: 0; left: 0; >12.5% < transform: translate(0px, 0px); >25% < transform: translate(-500px, 0); >36% < transform: translate(-500px, 300px); >37% < transform: translate(500px, 300px); >87.5% < transform: translate(500px, 0); >to < transform: (0px, 0px); >>
.slide1 < background: url(1.jpg); animation-delay: 7.5s; >.slide2 < background: url(2.jpg); animation-delay: 5s; >.slide3 < background: url(3.jpg); animation-delay: 2.5s; >.slide4
Общий CSS для всех слайдов:
19 слайдеров или каруселей CSS и HTML для вашего сайта

имеющий веб-сайты, занимающие всю ширину экранаМы находим, что можно интегрировать определенные элементы, которые могут пригодиться для отображения всего образца продуктов для продажи или поездок, которые мы можем предложить на лето. Карусели или слайдеры — это один из тех веб-элементов, которые позволяют нам визуально отображать наши продукты очень привлекательно.
Бесплатные слайдеры, скроллеры или карусели в CSS которые вы найдете ниже, составьте хороший репертуар для всех видов задач на работе, который мы собираемся показать клиенту, прежде чем он согласится с нашим бюджетом. Это набор слайдеров в HTML и CSS с небольшим количеством JavaScript как в горизонтальном, так и в вертикальном формате. Давайте сделаем это, чтобы вы могли получить доступ к коду для их быстрой реализации.
- 1 Горизонтальные карусели
- 2 Отзывчивая бесконечная карусель
- 3 React Carousel
- 4 Гладкий 3D-слайдер
- 5 Автоматическая бесконечная карусель
- 6 Карусель наведения
- 7 Мобильная карусель
- 8 Карусель ленты Instagram
- 9 Простая синхронизированная карусель
- 10 Горизонтальные карусели 3D
- 11 CSS-карусель
- 12 Карусель Ambilight Bootstrap
- 13 Команда Карусели
- 14 Куб карусели
- 15 Клавиши со стрелками карусели
- 16 Вертикальные карусели
- 17 Карусель на чистом CSS
- 18 Вертикальная карусель реагирует
- 19 3D-карусель с разделением
Горизонтальные карусели

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

Теме статьи:
27 слайдеров HTML и CSS, которые сделают ваш сайт особенным
Отзывчивая бесконечная карусель

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

Этот свиток выделяется своим React.js. Это позволяет отображать изображения пропорционального размера при переходе от одного изображения к другому в непрерывной анимации. Немногое сказать об этом довольно простом CSS, но он будет иметь большой эффект, если мы знаем, как правильно разместить его в Интернете.
Гладкий 3D-слайдер

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

Теме статьи:
46 слайдеров и скроллеров Javascript
Автоматическая бесконечная карусель

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

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

также называется Carousel Material Design, и с учетом текущей тенденции со всеми типами карт, здесь вы можете найти другую статью с большим их количеством в CSS / HTML, дистанцируется от остальных, поскольку состоит из языка дизайна, опубликованного Google. Вы можете перемещать разные карты, долгое нажатие на них.
Карусель ленты Instagram

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

Это во многом связано с предыдущим, особенно в полосе изображений, хотя взаимодействие со слайдером сильно отличается перемещая его боковым жестом слева направо и наоборот. Снова у нас есть slick.js, который делает свое дело. Поражает своим великолепным эффектом.
Горизонтальные карусели 3D

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

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

Простой слайдер с отличным эффектом, который ничем не выделяется. Один из эти простые ползунки то, что мы обычно ищем, и это дает ощущение единства без особой помпы, но это прекрасно выполняет свою функцию.
Команда Карусели

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

Слайдер, который представляет собой куб, в котором каждое из лиц — одно из изображений или фотографии, которые мы хотим разместить на веб-сайте. Вам нужно только щелкнуть по каждому из них, чтобы просмотреть их и узнать, какой контент вас ждет.
Клавиши со стрелками карусели

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

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

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

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

Великолепный визуальный эффект с узором ползунков, который вращается в 3D с очень яркая анимация. Вы можете выбрать каждый из вариантов в левом боковом меню с точками для каждого из них. Один из лучших в списке по своей креативности.
Содержание статьи соответствует нашим принципам редакционная этика. Чтобы сообщить об ошибке, нажмите здесь.
Полный путь к статье: Интернет-объявления » Технологии » CSS » 19 слайдеров или каруселей CSS и HTML для вашего сайта
4 комментариев, оставьте свой
Оставьте свой комментарий Отменить ответ

Майра Орельяна сказал
тому назад 6 лет
Доброе утро, я хочу использовать карусель на чистом CSS на своем сайте, но она расположена только в одной позиции, как мне сделать так, чтобы она располагалась в той позиции, которая мне нужна на моей странице. Прошу вас помочь с этим. Большое вам спасибо

Ксавье Каньисарес сказал
тому назад 4 лет
Как сделать так, чтобы карусель при наведении курсора отображалась на мобильной версии моего сайта?

Габриель сказал
тому назад 4 лет
Отлично, как хорошо они поработали!

Тони Самбрано сказал
тому назад 2 лет
Привет, каретные домики очень крутые, но как только я их загружаю, копирую и вставляю, javascrip выдает мне ошибку из-за var max = $ (‘# c> li) .lenght…. Что ты предлагаешь
Как зациклить слайдер?
Привет, я только изучаю JS и Jquery. Писал небольшой слайдер на CSS, потом решил добавить в него динамики. Автоматическое переключение сделать получилось, а как его зациклить — ломаю голову.
Сейчас слайды переключаются с 1 по 4 и останавливаются.
Хочу, чтобы после 4 слайда все шло сначала.
- Вопрос задан более трёх лет назад
- 11203 просмотра
Комментировать
Решения вопроса 0
Ответы на вопрос 3
Лучший способ понять как сделать что-то хорошее — посмотреть как сделано что-то хорошее. Я бы рекомендовал глянуть на плагин looper.js
Открыть код, посмотреть на переключение стилей в FireBug.
В тот код, что есть сейчас нельзя добавить ещё картинок просто в html-разметку, потребуется менять JS.
Рекомендую прочитать про $.next() для поиска следующего отображаемого элемента. Если следующего не найдётся — переключать на нулевой. Собственно, вот и цикл по изображениям.
Ответ написан более трёх лет назад
Комментировать
Нравится 1 Комментировать
Верстаю, фронтэндю =)
Простите, но то как вы пытаетесь это сделать — полнейший ад. Заюзайте плагин jQuery Cycle — jquery.malsup.com/cycle/int2.html
В вашем случае пример с Pager, и вместо цифер используете ваши превьюшки. Для того чтобы зациклить меняете параметр timeout с 0 на 300 например, это частота смены слайдов.