Свойство animation-direction — направление анимации
Свойство animation-direction
задает
направление анимации. По умолчанию анимация
повторится только 1
раз и затем
вернется в исходное состояние, затем,
если задана задержка animation-delay
,
будет ждать заданное время и потом цикл начнется
сначала.
Данное свойство позволяет поменять это поведение, например, так чтобы анимация после окончания оставалась в том месте, где она закончилась, а не перескакивала в начальное положение.
Также можно задать такое поведение: анимация
дойдет до крайней точки и вернется обратно
(как в transition
).
Смотрите описание ниже.
Синтаксис
селектор {
animation-direction: normal | reverse | alternate | alternate-reverse;
}
Значения
Значение | Описание |
---|---|
reverse | Анимация будет проигрываться в обратном направлении. |
alternate | Анимация будет проигрываться сначала в прямом, а потом в обратном направлении (как transition). |
alternate-reverse | Анимация будет проигрываться из конечного положения
в начальное и обратно. По сути это значения alternate и reverse в одном флаконе. |
normal | Анимация будет проигрываться от начала к концу, а после окончания скачком перескакивать в начальное положение. |
Значение по умолчанию: normal
.
Пример
Сейчас элемент будет двигаться в одну сторону,
а потом возвращаться обратно, так как задано
значение
. При этом animation-duration
имеет значение 3
секунды и это значит,
что перемещения «туда» и «обратно» будут
длиться по 3
секунды:
<div></div>
@keyframes move {
from {
margin-left: 0;
}
to {
margin-left: 400px;
}
}
#elem {
animation-direction: alternate;
animation-duration: 3s;
animation-name: move;
animation-iteration-count: infinite;
animation-timing-function: linear;
border: 1px solid black;
width: 50px;
height: 50px;
}
:
Пример
Сейчас элемент будет двигаться в обратную сторону (должен слева направо, а будет справа налево):
<div></div>
@keyframes move {
from {
margin-left: 0;
}
to {
margin-left: 400px;
}
}
#elem {
animation-direction: reverse;
animation-duration: 3s;
animation-name: move;
animation-iteration-count: infinite;
animation-timing-function: linear;
border: 1px solid black;
width: 50px;
height: 50px;
}
:
Пример
Сейчас элемент будет двигаться туда-сюда, но в обратном направлении (должен начинать слева, а будет начинать справа):
<div></div>
@keyframes move {
from {
margin-left: 0;
}
to {
margin-left: 400px;
}
}
#elem {
animation-direction: alternate-reverse;
animation-duration: 3s;
animation-name: move;
animation-iteration-count: infinite;
animation-timing-function: linear;
border: 1px solid black;
width: 50px;
height: 50px;
}
:
Смотрите также
- свойство
animation-name
,
которое задает имя анимации - свойство
animation-duration
,
которое задает продолжительность анимации - свойство
animation-delay
,
которое задает задержку перед выполнением анимации - свойство
animation-timing-function
,
которое задает скорость выполнения анимации - свойство
animation-iteration-count
,
которое задает количество итераций анимации - свойство
animation-fill-mode
,
которое задает состояние анимации - свойство
animation-play-state
,
которое позволяет поставить анимацию на паузу - свойство
animation
,
представляющее собой сокращение для анимаций - команду
@keyframes
,
задающую ключевые кадры анимации - плавные переходы
transition
, представляющие собой анимацию по наведению на элемент
Видимость — Tailwind CSS
Основы использования
Делаем элементы невидимыми
Используйте invisible
, чтобы скрыть элемент, но при этом сохранить его место в DOM, влияя на расположение других элементов (сравните со hidden
из документации display).
01
02
03
<div> <div>01</div> <div>02</div> <div>03</div> </div>
Сворачивающиеся элементы
Используйте collapse
, чтобы скрыть строки таблицы, группы строк, столбцы и группы столбцов, как если бы для них было установлено значение display: none
, но без влияния на размер других строк и столбцов.
Это позволяет динамически переключать строки и столбцы, не влияя на макет таблицы.
Showing all rows
Invoice # | Client | Amount |
---|---|---|
#100 | Pendant Publishing | $2,000.00 |
#101 | Kruger Industrial Smoothing | $545.00 |
#102 | J. Peterman | $10,000.25 |
`collapse`
Invoice # | Client | Amount |
---|---|---|
#100 | Pendant Publishing | $2,000. 00 |
#101 | Kruger Industrial Smoothing | $545.00 |
#102 | J. Peterman | $10,000.25 |
`hidden`
Invoice # | Client | Amount |
---|---|---|
#100 | Pendant Publishing | $2,000.00 |
#101 | Kruger Industrial Smoothing | $545.00 |
#102 | J. Peterman | $10,000.25 |
<table> <thead> <tr> <th>Invoice #</th> <th>Client</th> <th>Amount</th> </tr> </thead> <tbody> <tr> <td>#100</td> <td>Pendant Publishing</td> <td>$2,000. 00</td> </tr> <tr> <td>#101</td> <td>Kruger Industrial Smoothing</td> <td>$545.00</td> </tr> <tr> <td>#102</td> <td>J. Peterman</td> <td>$10,000.25</td> </tr> </tbody> </table>
Делаем элементы видимыми
Используйте visible
, чтобы сделать элемент видимым. Это в основном полезно для отмены утилиты invisible
на экранах разных размеров.
01
02
03
<div> <div>01</div> <div>02</div> <div>03</div> </div>
Применяя условно
Наведение, фокус и другие состояния
Tailwind позволяет условно применять служебные классы в разных состояниях с помощью модификаторов вариантов. Например, используйте
, чтобы применять утилиту invisible
только при hover.
<div> <!-- ... --> </div>
Полный список всех доступных модификаторов состояния смотрите в документации Наведение, фокус и другие состояния.
Контрольные точки и медиа-запросы
Вы также можете использовать модификаторы вариантов для таргетинга на медиа-запросы, такие как реагирующие контрольные точки, темный режим, предпочтения с уменьшенным движением и многое другое. Например, используйте
, чтобы применить утилиту invisible
только на экранах среднего размера и выше.
<div> <!-- ... --> </div>
Чтобы узнать больше, ознакомьтесь с документацией по адаптивному дизайну, темному режиму и другим модификаторам медиазапросов.
24 CSS Page Transitions
Коллекция отобранных бесплатных HTML и CSS эффектов перехода страниц примеров кода из Codepen, GitHub и других ресурсов. Обновление коллекции февраля 2020 года. 2 новых предмета.
О коде
преобразование: перевод
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Ответ: да
Зависимости: —
О коде
Еще один пользовательский интерфейс CSS
Еще один интерфейс CSS с переходом между страницами.
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Ответ: нет
Зависимости: font-awesome.css
О коде
Многослойный эффект раскрытия страницы
Многослойный эффект раскрытия страницы в HTML, CSS и JavaScript.
Совместимые браузеры: Chrome, Firefox, Opera, Safari
Зависимости: —
О коде
Плитки Переход страницы
плитки переход страницы в HTML и CSS.
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Зависимости: bootstrap. css
О коде
Страница перехода статьи
Страница перехода статьи в HTML, CSS и JS.
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Зависимости: —
О коде
Переход страницы
Простой переход страницы.
Демонстрационное изображение: переходы страниц полноэкранного макетапереходы страниц полноэкранного макета
переходы страниц с HTML, CSS и JavaScript.
Сделано Марсело Рибейро
19 июня 2017 г.
скачать демо и код
Демонстрационное изображение: Анимированные переходы страниц ReactАнимированные переходы страниц React
Просто небольшая демонстрация, показывающая несколько переходов страниц в React. Использование GreenSock и SVG.
Сделано Сарой Драснер
1 мая 2017 г.
скачать демо и код
О коде
Показать анимацию содержимого
Показать анимацию контента и меню.
Демонстрационное изображение: TransitionsTransitions
Простые переходы страниц css.
Сделано Филиппом
3 марта 2017 г.
скачать демо и код
Демонстрационное изображение: Эффект перехода при расширении страницы картыЭффект перехода при расширении страницы карты
Эта штука, где карта расширяется на задний план, без библиотек, без комментариев. Обратите внимание: этот код никоим образом не готов к использованию на вашем веб-сайте. Его нужно будет адаптировать, чтобы он был совместим с разными браузерами и был доступен.
Сделано Рэйчел Смит
10 февраля 2017 г.
скачать демо и код
Демонстрационное изображение: Кубический переход страницы БезьеКубический переход страницы Безье
GSAP Кубический переход страницы Безье.
Сделано Мацеем Сивановичем
2 февраля 2017 г.
скачать демо и код
О коде
Переходы между страницами
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Ответ: нет
Зависимости: —
О коде
Простой переход страницы CSS3
Простой и эффективный переход страницы CSS3.
Демонстрационное изображение: Переходы страниц Vue2 с GSAPПереходы страниц Vue2 с GSAP
Некоторые переходы страниц Vue2 по умолчанию.
Сделано Тимом Рийксе
4 ноября 2016 г.
скачать демо и код
О коде
Переход страницы
Плавный переход от сетки эскизов к полноэкранной странице. Использование анимации CSS и Angular 1.5.
О коде
Заставка
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Ответ: да
Зависимости: —
Демонстрационное изображение: Простые переходы страниц/слайдов CSSПростые переходы страниц/слайдов CSS
Супер простые переходы ползунков/страниц.
Сделано Джейми Коултер
31 декабря 2015 г.
скачать демо и код
Демонстрационное изображение: Переход страницы с помощью загрузчикаПереход страницы с помощью загрузчика
Переход страницы с помощью загрузчика в HTML, CSS и JavaScript.
Сделано Джоном Хайнером
12 июня 2015 г.
скачать демо и код
Демонстрационное изображение: переходы страницпереходы страниц
переходы страниц с помощью HTML, CSS и JavaScript.
Сделано Romswell Roswell Parian Paucar
22 мая 2015 г.
скачать демо и код
Демонстрационное изображение: загрузчик перехода страницызагрузчик перехода страницы
Новая концепция предварительной загрузки страницы. Загрузчик кругов SVG с эффектом морфинга. Отзывчивый анимированный каркас.
Автор Арсен Збидняков
17 апреля 2015 г.
скачать демо и код
Демонстрационное изображение: Разбиение на страницы SVG-пути и переход с вращающейся страницейРазбиение на страницы SVG-пути и переход с вращающейся страницей
Есть много жестко закодированных номеров. Ни при каких обстоятельствах не заглядывайте в раздел js.
Автор Николай Таланов
3 февраля 2015 г.
скачать демо и код
Демонстрационное изображение: переход Material DesignПереход Material Design
Щелкните любую ссылку в этом блоке текста, чтобы загрузить другой набор текста. Ссылки пока никуда не ведут. Это просто крючки, чтобы вы могли щелкнуть где-нибудь.
Стиль и анимация полностью основаны на CSS, поэтому они плавные. JavaScript используется для добавления классов в нужное время. Он также делает паузу, чтобы дождаться замены содержимого, и вычисляет, где центрировать дыру. Есть два этапа анимации. При нажатии на ссылку ширина границы становится очень большой.
Сделано Дэвидом Марландом
20 октября 2014 г.
скачать демо и код
Демонстрационное изображение: KontextKontext
Переход со сдвигом контекста, вдохновленный iOS.
Сделано Хакимом Эль Хаттабом
26 февраля 2013 г.
скачать демо и код
Как сделать CSS-переходы с высотой: Авто
13 января 2021 г.Поделись этим:
JavaScriptCSSBasics Создание плавной анимации развертывания/свертывания кажется простым. Наверняка можно установить переход на height: auto
, и он просто заработает?
К сожалению, боги CSS не так добры.
Вместо плавного открытия и закрытия, которого вы хотели, ваш элемент мигает до новой высоты. Нет плавной анимации.
Как оказалось, анимация на CSS 9Значения 0226 auto не работают, и это, честно говоря, очень жаль. Нам нужно использовать определенные значения, и это не всегда роскошь.
К счастью, есть несколько подходов к анимации автоматических размеров в CSS.
Метод 1: Использование
transform
Несмотря на широкое использование, следует избегать CSS-переходов свойств height
или width
(среди некоторых других).
Эти свойства влияют на макет страницы. Чтобы увидеть, как во время анимации затрагиваются другие элементы на странице, браузер полностью пересчитывает макет страницы.
Для каждого. одинокий. рамка.
Здесь на помощь приходит свойство CSS transform
. transform
заставляет ваш элемент анимироваться как изображение и пропускать перерасчет макета. Если вы можете использовать этот подход, вы должны.
К сожалению, при использовании transform
для сворачивания содержимого есть два препятствия:
- Содержимое деформируется при сворачивании.
- Остается пробел там, где было содержимое.
Способ 2: Анимация
max-height
/ max-width
Другой подход к свертыванию height
заключается в сворачивании max-height
на его место.
Преимущество этого подхода в том, что он прост. Ему также удается избежать странного эффекта деформации transform: scale
.
Но есть и недостатки:
- Мы анимируем на высоте
- Вам нужно неавтоматическое значение для
max-height
- Ваше время перехода
max-height
, а неheight
. Это делает почти невозможным получение определенного визуального эффекта от ваших переходов.
Метод 3: вычислить
высоту
с помощью JavaScript Более длинный (но более точный) подход заключается в использовании JavaScript для расчета начала и конца анимации с использованием визуализации элемента высота
.
Как только мы определим фактическую высоту элемента, мы можем внедрить ее как встроенный CSS, чтобы у браузера было что переходить между ними.
С точки зрения эффекта , это, вероятно, то, к чему вы стремились, но с компромиссами.
- Мы все еще анимируем на высоте
- Мы ввели довольно большой кусок кода для решения очень узкой проблемы
- Существует тесная связь между вашим JavaScript и CSS
Метод 4: ядерная бомба с орбиты с помощью FLIP + обратное масштабирование
Помните метод 1 и все проблемы, которые вызвало использование преобразования
?
Ну, оказывается можно их починить.