scroll-timeline-name 是 scroll-timeline 属性的组成部分,用于命名滚动时间线(如 --my-timeline),必须与 scroll-timeline 整体声明一同使用,设在滚动容器上(如 .scroller { scroll-timeline: --my-timeline y; }),再通过 animation-timeline: --my-timeline 绑定到动画元素,仅 Chromium 115+ 原生支持。
scroll-timeline-name 是什么,它在哪起作用
不是独立可用的 CSS 属性,它只是
属性的一个组成部分,用于给滚动时间线起一个标识名(类似 CSS 变量名),后续在
中通过该名称引用。它本身不触发任何滚动动画,也不能直接写在元素上生效。
关键点在于:必须配合
属性整体使用,且仅在支持滚动时间线的浏览器中有效(Chrome 115+、Edge 115+,Firefox 和 Safari 尚未实现)。
常见错误现象:
单独写
→ 无效,CSS 解析会忽略整条声明
在不支持的浏览器中调试 → 控制台无报错,但动画完全不响应滚动
名称拼写不一致(比如一处写
,另一处写
)→ 动画绑定失败,静默降级
怎么正确定义并引用 scroll-timeline-name
定义名称必须嵌套在
声明中,语法为:
(或
)。其中
是你指定的标识名,
表示纵向滚动轴(默认),
表示横向。
立即学习
“
前端免费学习笔记(深入)
”;
实操建议:
使用HTML,CSS,JavaScript开发Android应用程序 英文文字pdf版附源文件
如果你了解HTML,CSS和JavaScript,您已经拥有所需的工具开发Android应用程序。本动手本书展示了如何使用这些开源web标准设计和建造,可适应任何Android设备的应用程序 - 无需使用Java。您将学习如何创建一个在您选择的平台的Android友好的网络应用程序,然后转换与自由PhoneGap框架到一个原生的Android应用程序。了解为什么设备无关的移动应用是未来的潮流,并开始构建应用程序,提供更
下载
名称推荐用 CSS 自定义属性风格(
),避免和关键字冲突
滚动容器必须有明确的滚动上下文(如
+ 固定高度),否则时间线无法建立
必须设在**滚动容器**上(比如
scroll-timeline-namescroll-timelineanimation-timelinescroll-timelinescroll-timeline-name: --my-timeline;--timeline--time-linescroll-timelinescroll-timeline: --my-timeline yx--my-timelineyx--xxxoverflow-y: scrollscroll-timeline
),不是动画元素本身
动画元素需额外设置
animation-timeline: --my-timeline
才能绑定
.scroller {
height: 300px;
overflow-y: scroll;
scroll-timeline: --vertical-timeline y;
}
.animated-box {
animation: fade-in 1s linear;
animation-timeline: --vertical-timeline;
}
@keyframes fade-in {
from { opacity: 0; }
to { opacity: 1; }
}
为什么不能用 id 或 class 当 timeline 名称
scroll-timeline-name
的值不是选择器,也不是 DOM 引用,它就是一个纯标识符(ident token),和
@keyframes
名称规则一致:只允许字母、数字、连字符、下划线,且不能以数字开头。
典型误用:
scroll-timeline: #main-container y;
→
#main-container
是选择器,非法
scroll-timeline: myTimeline y;
→ 合法,但易与未来 CSS 关键字冲突,不推荐
scroll-timeline: "timeline-1" y;
→ 加引号变成字符串,非法
兼容性注意:
目前仅 Chromium 内核支持,Safari 报
Invalid property name
类似错误(实际是整个
scroll-timeline
被忽略)
没有回退机制 —— 如果时间线未建立,
animation-timeline
会退回到默认的
auto
(即时间轴基于时钟,非滚动)
滚动容器没动,但动画播了?检查这三点
这是最常被忽略的调试盲区:动画播了,但和滚动无关,说明时间线没真正绑定成功。
确认滚动容器有内容溢出(
scrollHeight > clientHeight
),否则
y
轴时间线长度为 0
检查是否意外设置了
contain: paint
或
will-change: transform
,某些版本 Chromium 会干扰滚动时间线采集
用 Chrome DevTools 的 **Animations** 面板查看 timeline 类型:如果显示 “Time-based” 而非 “Scroll-based”,说明
animation-timeline
绑定失败或容器不满足条件
滚动时间线的名称本身不难设,难的是让整个链路(容器可滚 → 时间线生成 → 动画绑定 → 浏览器支持)全部对齐。尤其要注意,它不像
@keyframes
那样“定义即存在”,而是一个运行时依赖布局和滚动状态的动态机制。
相关文章
- 如何用CSS实现子元素在父元素中固定居中显示,且无需Flex布局?
- css字体不统一怎么办_通过font family统一字体栈
- 如何使用 CSS 创建带有圆角和斜边的卡片样式以及圆角标签?
- css 定位实现弹窗效果需要注意什么_通过遮罩与层级控制说明
- HTML5中利用Fiddler抓包工具分析WebSocket数据帧
- jQuery将表单序列化成一个Object对象的实例
- html基本语法与语义写法规则详解
- CSS如何制作自定义鼠标光标图案_通常全局绝对定位一个元素并跟随鼠标坐标移动但设置pointer-events:none
- 如何将下拉菜单选定项的多个值分别显示在不同DIV中
- javascript实现回到顶部特效_javascript技巧
