CSS 滚动驱动动画 view-timeline (view-timeline-name ❤️ view-timeline-axis )

view-timeline

我们之前在 scroll() 中提到了一个因为绝对定位导致滚动无效的问题, 并使用 scroll-timeline 成功解决了这个问题, 而 scroll-timeline 起到的作用就是指定到底是哪个元素提供 scroll progress timeline.

与此相似, view-timeline 定义了一个具名的 view progress timeline, 通过滚动容器(scroller)中的某个元素(subject)可见性的改变来推动这个时间线. 而 view-timeline 就定义在 subject 上.

默认情况, 当 subject 将要出现在滚动容器时, 时间线进度是 0%; 当 subject 刚刚完全离开滚动容器时, 时间线进度是 100%.

语法

scroll-timeline 一样, view-timeline 也是一个缩写属性, 是 view-timeline-nameview-timeline-axis 的缩写.

  • view-timeline-name: 为 view progress timeline 起一个名字. 名字必须以 -- 开头. 随后可以在某元素 animation-timeline 中使用这个名字表示该元素动画将随着 timeline 进行. 这个元素可以是 subject, 也可以不是.
    • 也可以是关键字 none, 表示时间线没有名字
  • view-timeline-axis: (可选)包含 block(默认), inline, y, x. 具体解释见 scroll()

例子

在我实际测试的过程中, 发现并不能随意指定元素. 而是 subjectsubject 的子元素.

<div class="container">
  Lorem ipsum ...
  <div class="box">
    <div class="text">123123123123123123123123</div>
  </div>
  Lorem ipsum ...
</div>
.container {
  width: 400px;
  height: 200px;
  overflow: auto;
}
.box {
  width: 50%;
  height: 30px;
  view-timeline: --from-here-to-there; /* 设置时间线 */
}
@keyframes appear1 {
  from { transform: scaleX(0); }
  to { transform: scaleX(1); }
}
.text {
  animation: appear1 ease both;
  animation-timeline: --from-here-to-there;
}

在这里插入图片描述

谢谢你看到这里😊

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值