首页 > 其他分享 >记录--CSS 滚动驱动动画 scroll()

记录--CSS 滚动驱动动画 scroll()

时间:2023-09-05 18:58:13浏览次数:35  
标签:滚动 -- timeline 元素 color animation scroll CSS

这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助

CSS 滚动驱动动画 scroll()

animation-timeline 通过 scroll() 指定可滚动元素与滚动轴来为容器动画提供一个匿名的 scroll progress timeline.

通过元素在顶部和底部(或左边和右边)的滚动推进 scroll progress timeline. 并且元素滚动的位置会被转换为百分比, 滚动开始被转化为 0%, 滚动结束被转化为 100%

如果 scroll() 指定的滚动轴不包含滚动条, 也就是元素在滚动轴的方向不可滚动, 那么 timeline 的进度为 0%.

语法

scroll() 可以接受两个参数

  • 滚动元素: 滚动元素提供 scroll progress timeline. 可以取值
    • nearest: (默认值)设置 animation-timeline 元素最近的、具有滚动条的祖先元素.
    • root: 文档的根元素, 即 <html> 元素
    • self: 设置 animation-timeline 的元素自身
  • 滚动轴:
    • y: 垂直滚动轴
    • x: 水平滚动轴
    • block: (默认值)与滚动容器中行内文本方向垂直的轴. 对于从左到右书写的文字, 与 y 相同. 对于从上到下书写的文字, 与 x 相同.
    • inline: 与滚动容器中行内文本方向水平的轴. 对于从左到右书写的文字, 与 x 相同. 对于从上到下书写的文字, 与 y 相同.

这两个参数的书写顺序没有要求, 但是参数之间没有逗号, 这一点我一定要强调, 因为 translate 这个函数的参数就需要有逗号!!!

实例

正常举例

下面以背景渐变举例, 并且滚动容器就是元素自身.

@keyframes bg-color {
  from {
    background-color: lightpink;
  }
  to {
    background-color: lightskyblue;
  }
}
.box {
  width: 200px;
  height: 300px;
  border: 1px solid #bbb;
  overflow: auto;
  animation: bg-color linear;
  animation-timeline: scroll(self);
}

 如果我们加上下面的代码, 改变文字书写方向, 从上到下, 从左到右

html { writing-mode: vertical-lr; }

最近滚动祖先?

来看一个例子, 这个例子出现了问题, 为什么动画没有效果呢?

标签:滚动,--,timeline,元素,color,animation,scroll,CSS
From: https://www.cnblogs.com/smileZAZ/p/17680541.html

相关文章

  • 错误处理
    错误处理 axios.get('/user/12345').catch(function(error){if(error.response){//请求成功发出且服务器也响应了状态码,但状态代码超出了2xx的范围console.log(error.response.data);console.log(error.response.status);console.l......
  • 前端编程题(一):数组
    手写数组常见方法//数组mapArray.prototype.myMap=function(callback){constarr=[]for(leti=0;i<this.length;i++){arr[i]=callback(this[i],i);}returnarr;}//数组filterArray.prototype.myFilter=function(callback){const......
  • 基于全息感知的智慧高速IT设施监控运维方案
    作为智能交通的重要细分领域,建设智慧高速是实施交通强国战略的重要基础。在信息化时代,交通行业已经依托信息化建设取得了显著的成果,其中以收费网络、办公网络、监控网络和通讯网络为基础的网络架构已经形成,并且正在逐步完善网络架构的安全运维和优化建设。智慧高速公路作为交通行......
  • 项目相关的问题记录
    1.你们的服务部署在多少台机器上面?集群部署,至少两台,2核4G,一台如果挂掉了可以容灾的切换。2.RocketMq设置了多少消费者?如何保证高可用的问题。一个集群可以有多个消费者。是3个消费者,可以设置上下线。 默认情况下就是集群消费,这种模式下⼀一个消费者组共同消费⼀一个主题的......
  • TCC模式原理
        ......
  • Java
    第一节:publicclassMain{publicstaticvoidmain(String[]args){System.out.printf("Helloandwelcome!\n");doublex=0.3d;//后缀要加d或者f或者lbooleany=false;//不能与数据一起运算System.out.println(x);Syst......
  • docker 打开报错 windows hypervisor is not present docker desktop is unable to de
     dockerdesktop-windowshypervisorisnotpresentdockerdesktopisunabletodetectahypervisor.hardwareassistedvirtualizationanddataexecutionprotectionmustbeenabledintheblos.seehttps://docsdocker.com/desktop/troubleshoot/topics/#virtua......
  • macOS开启任何来源
    1、打开Terminal终端,执行下面代码后输入管理员密码sudospctl--master-disable 2、查看是否开启成功,系统偏好设置---安全性与隐私里面就能看到 ......
  • SVN 仓库目录管理
    一个SVN目录仓库用的时间长了之后,就会发现有的目录可以单独列出来开个单个的仓库了,这时候希望把它们拿出来,并保留改动日志。这个时候就可以用`svndumpfilter`命令来处理这个问题。第一步,把整个svn库dump出来sudosvnadmindumprepo1>repo1_backup.svn第二步,从dump中提取需要......
  • 使用中间件
    使用中间件Express是一个路由和中间件Web框架,它自己的功能很少:Express应用程序本质上是一系列中间件函数调用。中间件函数是有权访问请求对象()、响应对象 ()和应用程序请求-响应周期中的下一个中间件函数的函数。下一个中间件函数通常由名为的变量表示。reqresnext中间件......