[Исправлено] CSS-переходы не работают и примеры
CSS-переходы — это быстрый способ создания анимации для вашего веб-дизайна. Мы можем использовать это сокращенное ключевое слово CSS transition
.
При создании дизайна я иногда не могу заставить CSS-свойство transition
работать правильно.
Действия по устранению проблем с неработающим переходом CSS :
- Проверьте правильность синтаксиса свойства перехода CSS. Убедитесь, что
свойство перехода
относится к самому элементу, а не к состоянию триггера элемента (например,:hover
или:focus
). - Переход можно применить только к анимируемым свойствам.
- Убедитесь, что для свойства анимации не установлено значение auto . Переходы не могут анимировать свойства CSS, которые не установлены явно и auto .
- Убедитесь, что свойство перехода поддерживается браузером пользователя
Проверьте правильность синтаксиса свойства перехода CSS
— это простой способ создать анимацию (или изменить) свойства CSS с течением времени. Обычно это делается при наведении, чтобы запустить анимацию.Он позволяет определить три параметра:
- свойство CSS для анимации
- Как долго должна продолжаться анимация
- Как должна выполняться анимация – с помощью функций синхронизации (например, линейная, плавная, плавная) аут)
В приведенном ниже коде синтаксис свойства перехода следующий:
div { переход: <свойство> <длительность> <функция синхронизации> <задержка>; } /* свойство — свойство CSS, которое мы хотим анимировать. Мы можем использовать ключевое слово all, чтобы сказать, что мы разрешаем анимацию всем */ /* продолжительность - количество секунд, в течение которых должна длиться анимация */ /* функция синхронизации - функция синхронизации для использования анимации (например, линейная, плавная, плавная) */ /* задержка - количество секунд для задержки анимации */
Приведенный выше переход
является сокращением. Если вы хотите явно указать каждый компонент, мы можем использовать следующие подсвойства.
- transition-property — будут анимированы только перечисленные здесь свойства CSS. Ключевое слово
all
может использоваться, чтобы сообщить браузеру, что все свойства CSS можно анимировать, если изменить. - transition-duration — продолжительность анимации в секундах (с) или миллисекундах.
- функция времени перехода — функция синхронизации того, как будет работать анимация. Например,
linear
будет работать постоянно.easy-in
будет работать анимация быстрая в начале и медленная в конце. - transition-delay — задержка в секундах (s) или миллисекундах (mms)
#delay { размер шрифта: 14px; свойство перехода: размер шрифта; продолжительность перехода: 4 с; задержка перехода: 2 с; } # задержка: наведите { размер шрифта: 36 пикселей; }
Совет: лучше не использовать
transition-property:all
Переход можно применить только к
анимируемым свойствамCSS содержит список свойств, которые можно сделать «анимируемыми». На самом деле это означает, что если это свойство может быть изменено с течением времени.
Например, ширина
и высота
являются очевидными свойствами, которые можно анимировать. Мы можем изменить ширину/высоту элемента CSS (анимировать его для увеличения или уменьшения и т. д.).
Примером свойства CSS, которое нельзя анимировать, являются свойства макета или типа отображения. Например flex-direction
не имеет смысла
как одушевляемый объект. Мы действительно можем изменить это свойство с течением времени (имеет только определенный набор значений — например, , строка
, , столбец
).
Список анимируемых свойств CSS можно найти здесь:
- https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_animated_properties
можно оживить, взглянув на формальное определение . Например
анимация-направление
не поддерживает анимацию:
- https://developer. mozilla.org/en-US/docs/Web/CSS/animation-direction#formal_definition
Убедитесь, что для свойства анимации не установлено значение
auto . Переходы не могут анимировать свойства CSS, которые не установлены явно и auto . Спецификация CSS рекомендует не анимировать элементы, зависящие от значения свойства
. Это просто означает, что мы должны
явно установить значение «от» и «до», когда мы объявляем переход.
Например, ниже используется переход для свойства height:auto
. height:auto
просто установите высоту элемента, который будет регулироваться на основе
содержание. Когда мы наводим курсор на блок, анимации нет (просто мерцание с новой высотой)
.btn{ высота: 100 пикселей; переход: все единицы; цвет фона: розовый; ширина:100%; } .кнопка:наведите{ высота: авто; /* ❌ Не работает */ }
Как видите, анимация не работает, потому что мы возимся с авто
собственность.
Теперь, если мы изменим height:auto
на высоту с определенным значением (например, height:200px
), мы увидим, что переход будет работать.
.btn{ высота: 100 пикселей; переход: все единицы; цвет фона: розовый; ширина:100%; } .кнопка:наведите{ высота: 200 пикселей; /* ✔️ Изменить высоту на явную */ }
Некоторые браузеры (например, реализации Gecko, например Firefox) относятся к этому более строго. Браузеры Webkit не такие строгие (например, Chrome, Safari).
Убедитесь, что свойство перехода поддерживается браузером пользователя.
Свойство перехода широко поддерживается в современных браузерах. Однако в более старых версиях Internet Explorer (IE11) и версиях Fire Fox.
Необходимо учитывать, что CSS-переходы должны работать в широком диапазоне браузеров:
- Как правило, в современных браузерах вам больше не нужно использовать префиксы поставщиков. Однако, если вы хотите быть в безопасности, мы можем использовать следующее:
-webkit-transition: все 500 мс; -moz-переход: все 500мс; -о-переход: все 500мс; переход: все 500 мс;
- Проблемы с IE 11 и более ранними версиями — не поддерживает свойство заполнения SVG,
не поддерживается в качестве свойства анимации, свойство background-size не поддерживается число столбцов - Safari 11 не поддерживает
flex-basis
в качестве анимируемое свойство CSS - Opera 11 не поддерживает функции синхронизации, такие как
steps()
,step-start()
, иstep-end()
Резюме
Переходы CSS — это простой способ анимировать элемент CSS при изменении его состояния (например, :hover
, :focus
, при установленном флажке ввод: проверено
). В этом посте мы рассмотрели различные причины, по которым ваш CSS-переход не работает.
Нам нужно проверить правильность использования синтаксиса, проверить, что мы пытаемся анимировать
свойство, указанное как анимируемое свойство, убедитесь, что мы не используем auto
ключевое слово и просмотрите поддержку браузера.
Как правило, большинство современных браузеров поддерживают переходы CSS, но лучше добавить префиксы поставщиков.
Узнайте, как добавить переходы CSS на свою веб-страницу
Если вы работаете с веб-технологиями, такими как CSS, HTML и JavaScript, полезно иметь некоторые базовые знания о переходах CSS. Это самый простой способ анимировать ваши компоненты. В этом уроке вы узнаете, как добавить базовую анимацию перехода с помощью CSS.
CSS-переход
Свойство CSS Transition используется для добавления некоторых интересных эффектов перехода. Переход происходит, когда свойство изменяется с одного значения на другое значение в заданный период времени.
Эффект перехода возникает, когда пользователь наводит курсор на элемент.
Синтаксис:
свойство перехода: нет|все|свойство|начальное|наследовать;
В процессе перехода находятся четыре свойства:
- transition-delay: указывает время задержки начала перехода.
- transition-duration: указывает время, которое должно пройти для завершения эффекта перехода.
- функция времени перехода: определяет скорость перехода.
Пример перехода CSS 1
Здесь при наведении курсора на элемент ширина меняется со 100px на 500px.
1 с (секунды) — это продолжительность, в течение которой будет происходить переход.
Пример перехода CSS 2
Свойство преобразования в CSS позволяет поворачивать, масштабировать, наклонять или перемещать элемент. В этом примере элемент будет поворачиваться на 160 градусов при наведении курсора.
Поддержка браузера
Браузер | Хром | Фаерфокс | Сафари | Опера |
Версия | 26,0 | 16,0 | 6.1 | 12.1 |
Получите навыки работы с HTML5 и CSS3 с помощью магистерской программы Full Stack Java Developer. Нажмите, чтобы узнать подробности программы!
Заключение
В этой статье вы рассмотрели различные эффекты, которые можно добавить с помощью переходов CSS. Вы можете использовать CSS-переходы и расширенный CSS разными способами на своей странице, чтобы улучшить взаимодействие с пользователем.
Если вы хотите расширить свое обучение и получить более полное и прикладное представление о разработке полного стека, вам следует ознакомиться с программой для аспирантов Simplilearn по курсу веб-разработки полного стека в сотрудничестве с Caltech CTME.