Ответы пользователя по тегу Анимация
  • Изменения каких свойств при анимации являются более оптимизированными? transform: translate или top (position: relative)?

    wqertAnna
    @wqertAnna Автор вопроса
    Кажется, я перепутала и всё наоборот.


    1. Макет (layout)
    2. Отрисовка (paint)
    3. Композиция (composite)

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

    Если вы измените свойство CSS, которое не затрагивает ни макет, ни отрисовку, то браузеру остаётся сделать только композицию.
    Для подробной информации, какие процессы запускают различные свойства CSS, см. триггеры CSS

    ________________________________________________
    статья
    Начиная от заголовка Макет, отрисовка и композиция

    свойство top влияет на все 3 шага конвейера
    свойство transform в некоторых браузерах на 3 шага, в других же только на 1
    Ответ написан
    Комментировать
  • Как поправить анимацию?

    wqertAnna
    @wqertAnna
    Когда Вы пытаетесь отладить что-то, старайтесь постепенно убрать всё лишнее.
    Например, из трех блоков оставляете только один, смотрите баг сохраняется. Дальше убираете кнопку, ничего не меняется, проблема ещё есть, значит дело не в этом.
    И таким образом старайтесь всё упростить.

    Советую прочитать про свойство animation-fill-mode.
    Что у вас происходило: когда вы убирает курсор с блока, стили .card-block__position становятся теми, что без hover ( это bottom: -41px ), а анимация ещё не применилась, т.к. у вас стоит задержка animation-duration: 200ms; и потом только срабатывает анимация и свойство bottom становится 0 после чего уже постепенно меняется на bottom: -41px
    Это решается установление свойства animation-fill-mode: backwards

    Во время отладки анимации очень полезным будет смотреть её в замедленном режиме, тогда вы сможете понять в чем проблема (см. скрин) Открываете консоль разработчика
    5d194fe96e6c2561409314.png

    вот решенная ваша проблема: https://codepen.io/anon/pen/ZdrjeZ
    5d1950572d8ae486367301.png

    Также используйте сокращенное свойство animation, это хорошая практика и код более читаемый.
    animation: 200ms BackgroundIn linear 0ms 1 normal backwards;


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

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

    Вот я переписала анимацию bottomIn
    https://codepen.io/anon/pen/WqMKaL

    5d195639bfa66361172667.png
    Ответ написан