代码之家  ›  专栏  ›  技术社区  ›  Henfs

同一动画是否可以有不同的过渡?

  •  1
  • Henfs  · 技术社区  · 4 年前


    我希望每个样式状态的更改都有不同的转换值。

    但是,使用 transition 里面 @keyframes

    .square {
      background-color: #333;
      height: 100px;
      width: 100px;
      animation: 4s move infinite;
    }
    @keyframes move {
      0% {
        transition: ease-in;
      }
      50% {
        transform: translate(100%);
        transition: ease-out;
      } 100% {
        transform: translate(0);
        transition: cubic-bezier(0.25, 0.1, 0.6, 1.8);
      }
    }
    <div class="square"></div>

    我想知道是否有一种方法可以让动画的每个阶段都有不同的过渡,而不必组合多个 animation 在包裹的元素中。

    1 回复  |  直到 4 年前
        1
  •  1
  •   Afrophysics    4 年前

    这个 transition 属性不在关键帧内执行任何操作。你可以使用 属性指定选择器/变换(即,默认值和 :hover ),或者可以使用关键帧指定它如何随时间范围(即, from to ,或 0% , 50%, 100% 等等)。

    当你仔细想想,它们是表达相同信息的两种不同方式。

    可以 animation-timing-function 如果要对过渡进行更多控制,请在各个关键帧中使用属性。要知道直到2015年左右,Safari(iOS/OSX)才支持它,所以如果需要支持这些版本,可能会遇到麻烦。