CSS 滚动驱动动画与 @keyframes 新语法

CSS 滚动驱动动画与 @keyframes

在 CSS 滚动驱动动画相关的属性出来之后, @keyframes 也迎来变化.

以前, @keyframes 的值可以是 from, to, 或者百分数. 现在它多了一种属性的值 <timeline-range-name> <percentage>

建议先了解 animation-range 不然你会对 timeline-range-name 感到陌生.

例子

我们先看看在新语法出现之前怎么写的. 我们用 from(也就是 0%) 表示动画开始祯, to(100%) 表示动画结束祯

html 复制代码
<div class="scroller">
  Lorem ...
  <div class="box"></div>
  Lorem ....
</div>
css 复制代码
.scroller {
  height: 250px;
  overflow: auto;
}
.box {
  animation: grow both;
  animation-timeline: view();
}
@keyframes grow {
  from {
    transform: scaleX(0);
  }
  to {
    transform: scaleX(1);
  }
}

如何使用新语法呢? 你会发现 from 其实对应的就是 entry 0% 的位置, to 对应的是 exit 100% 的位置, 于是

css 复制代码
@keyframes grow {
  entry 0% {
    transform: scaleX(0);
  }
  exit 100% {
    transform: scaleX(1);
  }
}

📖 <timeline-range-name> 后面的百分比不能省略.

另一种 animation-range 的实现

有了新的语法, 我们大胆尝试通过 @keyframes 修改关键帧, 来达到修改 animation-range 的想法. 比如我希望实现 animation-range: entry

css 复制代码
.box {
  animation: grow both;
  animation-timeline: view();
}
@keyframes grow {
  entry 0% {
    transform: scaleX(0);
  }
  entry 100% {
    transform: scaleX(1);
  }
}

因为 animation-range 是一个简写属性, 包括 animation-range-start 和 animation-range-end, 所以我们也可以在 @keyframes 中指定两组不同的关键帧, 分别对应 animation-range-start 和 animation-range-end.

css 复制代码
@keyframes grow {
  entry 0% {
    transform: scaleX(0);
  }
  entry 100% {
    transform: scaleX(1);
  }
  exit 0% {
    transform: scaleX(1);
  }
  exit 100% {
    transform: scaleX(2);
  }
}

请大家注意动图右下角的代码

谢谢你看到这里😊

相关推荐
西红柿炖牛腩3545 分钟前
机房电脑不能联网,怎么离线把课件里的 3D 模型压小?Draco / Meshopt 参数清单
前端·javascript·3d·性能优化·大屏端
爱喝水的小周7 分钟前
实验十三 Vue 过渡与动画—电商后台消息中心实现
前端·javascript·vue.js
hunterandroid10 分钟前
Navigation Component 工程落地:从单 Activity 架构到深度链接配置
android·前端
无责任此方_修行中12 分钟前
如何不用括号调用 JS 的函数?
前端·javascript·node.js
kyriewen15 分钟前
我数了 647 条大厂前端 JD:AI 不再只是加分项
前端·程序员·ai编程
无责任此方_修行中29 分钟前
Deno 的八年:一场没逃出 Node 引力的运行时起义
前端·javascript·node.js
java1234_小锋40 分钟前
【技术专题】HTML5 网页技术 - HTML5 语义化标签
前端·html·html5
涛涛ing44 分钟前
2026年,你的JavaScript计数逻辑可以删了:CSS刚刚学会了自己数数
前端
广州华水科技1 小时前
单北斗GNSS变形监测系统在水库安全监测中的应用与优势
前端
PBitW1 小时前
行内编辑,如何防止后端未返回,直接全部更新了?
前端·面试