uni-app x 中的 CSS animation-range 属性详解:滚动驱动动画的时间线附着范围
uni-app x 中的 CSS animation-range 属性详解滚动驱动动画的时间线附着范围【免费下载链接】uni-appA cross-platform framework using Vue.js项目地址: https://gitcode.com/gh_mirrors/un/uni-appanimation-range是 CSS 滚动驱动动画scroll-driven animations体系中的核心简写属性用于定义动画沿其时间线timeline的附着起点与终点即动画在时间线上从何处开始、在何处结束。在 uni-app x 的 CSS 文档体系中该属性属于 动画家族属性 的一员与animation-timeline、animation-range-start、animation-range-end配套使用。本文将基于 animation-range.md 文档完整梳理该属性的语法、全部取值语义并结合仓库文档与源码核实其在不同平台上的兼容性现状帮助你在编写 uni-app x 动画样式时准确判断可用范围、避免写出无法生效的样式。animation-range 是什么按照 docs/css/animation-range.md 的定义The animation-range CSS shorthand property is used to set the start and end of an animations attachment range along its timeline, i.e. where along the timeline an animation will start and end.也就是说普通的时间型动画time-based animation通过animation-duration决定动画跑多久而滚动驱动动画scroll-driven animation的进度由滚动位置或元素视口可见度驱动animation-range则用来限定动画沿着这条时间线从哪个进度点开始附着、到哪个进度点结束附着。它是两个独立属性的简写| 拆分属性 | 作用 | 默认值 | | :- | :- | :- | |animation-range-start| 设置动画沿时间线附着的起点|normal| |animation-range-end| 设置动画沿时间线附着的终点|normal|对应文档位于 docs/css/animation-range-start.md 与 docs/css/animation-range-end.md两处均明确默认值为normal。语法文档给出的正式语法为animation-range: [ animation-range-start animation-range-end? ]#;语法要点逗号分隔列表可一次为多个动画多个animation-name分别指定附着范围每个列表项对应一个动画每项可只写一个值同时作用于 start 与 end也可写两个值前者为animation-range-start后者为animation-range-end时间线范围名称与长度百分比组合使用时格式为timeline-range-name length-percentage?。配合的两个子属性语法分别为animation-range-start: [ normal | length-percentage | timeline-range-name length-percentage? ]#; animation-range-end: [ normal | length-percentage | timeline-range-name length-percentage? ]#;从语法结构可以推断该属性设计上同时接受关键字值normal、cover、contain、entry、exit、entry-crossing、exit-crossing用于命名视图进度时间线named view progress timeline长度/百分比如0%、100%、50px直接锚定时间线进度时间线范围名 长度/百分比先用timeline-range-name选中命名时间线中的某一段范围再在该段内用长度或百分比精确定位。属性值详解根据 animation-range.md 的属性值表格animation-range支持以下 7 个关键字值均用于配合命名视图进度时间线即animation-timeline: view()场景| 名称 | 描述 | | :- | :- | |normal| 代表时间线的起点用于animation-range-start或时间线的终点用于animation-range-end。这是默认值。 | |cover| 代表命名视图进度时间线的完整范围从主体元素首次开始进入滚动视口的视图进度可见范围0% 进度起到其完全离开该范围100% 进度止。 | |contain| 代表命名视图进度时间线中主体元素被滚动视口完全包含、或完全包含滚动视口的那一段范围。若主体元素小于滚动视口则从主体元素首次被滚动视口完全包含0% 进度到不再被完全包含100% 进度若主体元素大于滚动视口则从主体元素首次完全覆盖滚动视口0% 进度到不再完全覆盖100% 进度。 | |entry| 代表命名视图进度时间线中主体元素首次开始进入滚动视口0% 进度到完全进入滚动视口100% 进度的范围。 | |exit| 代表命名视图进度时间线中主体元素首次开始离开滚动视口0% 进度到完全离开滚动视口100% 进度的范围。 | |entry-crossing| 代表命名视图进度时间线中主体元素首次开始越过滚动视口起始边缘0% 进度到完全越过滚动视口起始边缘100% 进度的范围。 | |exit-crossing| 代表命名视图进度时间线中主体元素首次开始越过滚动视口结束边缘0% 进度到完全越过滚动视口结束边缘100% 进度的范围。 |这 7 个关键字与animation-timeline的view()时间线紧密配合。需要说明的是animation-timeline属性本身在 docs/css/animation-timeline.md 中有独立文档其取值包括none、auto、scroll()匿名滚动进度时间线与view()匿名视图进度时间线默认值为auto。各关键字对应的动画区间示意以元素在滚动视口中由进入至离开的完整过程为线索可以这样理解上述关键字的时间线划分进入前元素尚未接触视口entry-crossing区间元素跨越视口起始边缘进入一侧的边entry区间元素完全进入视口cover区间元素从刚进入可见范围到完全离开可见范围即 0%100% 全程exit区间元素完全离开视口exit-crossing区间元素跨越视口结束边缘离开一侧的边离开后元素完全不可见。contain则特殊一些它描述的是主体元素完全被视口包住或完全包住视口的状态段适合做仅在元素完整可见期间播放的效果。兼容性uni-app x 平台的现状uni-app x 平台兼容性原文档的兼容性表格如下x表示不支持| Android | iOS | HarmonyOS | | :- | :- | :- | | x | x | x |即animation-range在 uni-app x 的 Android、iOS、HarmonyOS 三大原生平台当前均不支持。App 平台拍平flatten兼容性| Android(Vapor) | iOS(Vapor) | HarmonyOS(Vapor) | | :- | :- | :- | | x | x | x |即该属性同样未被列入 App 平台 Vapor拍平渲染模式的兼容范围。这一点在 docs/css/README.md 的不支持拍平的 CSS 属性清单中可以得到印证animation-range、animation-range-end、animation-range-start以及整个animation-*动画家族animation、animation-timeline、animation-composition等在 Vapor 模式下均标记为x。从源码结构看在本仓库的src目录含src/pages/CSS各样式演示页中未检索到animation-range、animation-range-start、animation-range-end的相关实现或示例代码这与文档中三端均为 x不支持的标注是一致的。为什么文档仍收录该属性uni-app x 在 App 平台实现的是 Web CSS 的子集ucss。根据 docs/css/README.md 的说明子集并不影响开发者开发出所需的界面仅是写法上没有那么丰富。当 uni-app x 编译到 web、小程序等平台时可以支持 web 的全部 css。因此animation-range这类文档的存在价值在于一方面完整对齐 Web 标准属性清单样式清单 中列出了animation-range、animation-range-end、animation-range-start三个条目另一方面通过x标注明确告知开发者——该属性当前仅在 uni-app x 编译到 Web 平台时可用在 App 原生三端含 Vapor 模式无法生效。在 App 端书写该属性不会产生滚动驱动动画效果这一点需要在实际开发中特别留意。Web 平台的使用示例虽然 App 原生平台暂不支持但在 uni-app x 编译到 Web 平台时animation-range可配合animation-timeline: view()实现滚动驱动的进度动画。典型写法如下keyframes fade-in { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } } .card { animation-name: fade-in; animation-timeline: view(); /* 以元素自身为视图进度时间线 */ animation-range: entry 0% entry 100%; /* 元素从开始进入视口到完全进入视口期间播放 */ }拆分写法与简写等价.card { animation-name: fade-in; animation-timeline: view(); animation-range-start: entry 0%; animation-range-end: entry 100%; }再如元素在视口中完全可见的期间持续高亮可用contain.card { animation-name: highlight; animation-timeline: view(); animation-range: contain 0% contain 100%; }提示由于 uni-app x 的 App 端采用样式不继承、仅 class 选择器、flex 布局等 ucss 子集约束详见 docs/css/README.md上述滚动驱动动画示例仅针对 Web 端有效若需跨端一致的动画效果建议使用animation家族中已获得原生支持的能力例如animation简写属性在 Android(Vapor)、iOS(Vapor)、HarmonyOS(Vapor) 中均已支持到 5.25详见 animation.md或采用基于滚动事件的业务代码驱动。相关属性与延伸阅读animation-range不是孤立属性它与下列文档构成完整的滚动驱动动画家族建议一并查阅docs/css/animation-range-start.md附着范围起点默认值normaldocs/css/animation-range-end.md附着范围终点默认值normaldocs/css/animation-timeline.md选择时间线类型none、auto、scroll()、view()默认值autodocs/css/animation-duration.md其中auto取值对滚动驱动动画有特殊含义——对于时间型动画等价于0s而对于滚动驱动动画则让动画填满整条时间线docs/css/animation.mdanimation简写属性可组合animation-name、animation-duration、animation-timing-function、animation-delay、animation-iteration-count、animation-direction、animation-fill-mode、animation-play-statedocs/css/README.mduni-app x 的 ucss 子集说明、样式重置清单与不支持拍平的 CSS 属性总表可据此判断任意 CSS 属性在各平台的可用性。总结animation-range是滚动驱动动画中控制动画沿时间线从哪开始、到哪结束的关键简写属性其 7 个关键字normal、cover、contain、entry、exit、entry-crossing、exit-crossing分别对应主体元素与滚动视口之间不同的位置关系阶段。在 uni-app x 中该属性与animation-range-start、animation-range-end目前仅面向 Web 平台Android、iOS、HarmonyOS 原生端含 Vapor 拍平模式均标注为x不支持。开发者在 App 端需要滚动驱动效果时应优先采用原生已支持的动画能力或业务层滚动监听方案并随时关注 样式清单 中该属性的兼容性更新。【免费下载链接】uni-appA cross-platform framework using Vue.js项目地址: https://gitcode.com/gh_mirrors/un/uni-app创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

Arthas version 命令详解:查看目标 Java 进程加载的 Arthas 版本

Arthas version 命令详解:查看目标 Java 进程加载的 Arthas 版本

Arthas version 命令详解:查看目标 Java 进程加载的 Arthas 版本 【免费下载链接】arthas Alibaba Java Diagnostic Tool Arthas/Alibaba Java诊断利器Arthas 项目地址: https://gitcode.com/gh_mirrors/ar/arthas version 是 Arthas 内置基础命令之一&#…

2026/9/19 5:24:25 阅读更多 →
MiniCPM5-2B端侧Agent实战:部署、工具调用与性能调优

MiniCPM5-2B端侧Agent实战:部署、工具调用与性能调优

1. 端侧模型这条赛道,为什么 MiniCPM 值得单独拿出来聊端侧模型这两年热闹得不行,每隔几周就有新名字冒出来,但真正能在手机、车机、开发板这些资源受限设备上跑起来、还跑得像个样子的,其实没几个。面壁智能的 MiniCPM 系列算是其…

2026/9/19 5:24:25 阅读更多 →
情绪伤痛的社会认知与心理健康应对策略

情绪伤痛的社会认知与心理健康应对策略

1. 情绪伤痛的社会认知困境"矫情"这个词在当代社交语境中,已经成为一种极具杀伤力的情绪否定。当一个人鼓起勇气向亲友倾诉自己的心理痛苦时,最害怕听到的回应莫过于:"这有什么好难过的?你就是太矫情。"这种回…

2026/9/19 5:24:25 阅读更多 →

最新新闻

工程数学习题答案的深层价值:从解题到工程能力跃迁

工程数学习题答案的深层价值:从解题到工程能力跃迁

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/19 9:26:13 阅读更多 →
Rust零拷贝实时执行链路:从async到PWM的七层穿透

Rust零拷贝实时执行链路:从async到PWM的七层穿透

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/19 9:26:13 阅读更多 →
从终端日志解放,TaoToken 加 LLM Space 重放

从终端日志解放,TaoToken 加 LLM Space 重放

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/19 9:26:13 阅读更多 →
AIDA64 Extreme硬件检测工具:功能解析与实操指南

AIDA64 Extreme硬件检测工具:功能解析与实操指南

1. 硬件检测工具到底在检测什么很多人第一次接触硬件检测工具,是因为电脑出了状况——蓝屏、卡顿、温度飙升、风扇狂转,但打开任务管理器一看,CPU占用率才百分之十几,完全看不出问题在哪。这时候你就需要一类工具,它不…

2026/9/19 9:26:13 阅读更多 →
Xshell 7下载安装与Linux连接全攻略:双击无法运行排查方案

Xshell 7下载安装与Linux连接全攻略:双击无法运行排查方案

Xshell 7(最新版)的下载、安装与Linux连接全攻略,附双击无法运行的排查方案做运维或者玩Linux的朋友应该都有体会,日常连服务器、看日志、改配置,手里没个顺手的终端工具是真的难受。Xshell算是我用了很多年的老牌工具…

2026/9/19 9:26:13 阅读更多 →
Claude Code 配 TaoToken:跑通 gstack 的 Plan→Review→Ship 流水线

Claude Code 配 TaoToken:跑通 gstack 的 Plan→Review→Ship 流水线

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/19 9:25:13 阅读更多 →

日新闻

BP神经网络时序预测:滑窗长度与多窗口平均策略

BP神经网络时序预测:滑窗长度与多窗口平均策略

简介:面向机器学习、深度学习与数据建模学习者的一份完整研究文献,聚焦BP神经网络在农业产量预测中的应用。文档以1980—2018年全国棉花产量为样本,系统讲解数据归一化处理、激活函数原理、多层神经网络结构搭建及训练流程,展示敏…

2026/9/19 0:00:30 阅读更多 →
Transformer训练实时监控实战:基于MindSpore的损失曲线可视化方案

Transformer训练实时监控实战:基于MindSpore的损失曲线可视化方案

上个月调一个Deformable DETR模型,在单卡上要跑将近两天。第二天早上我下意识打开终端翻日志,发现loss从凌晨两点就开始往上爬,一路从0.8涨到1.35,整整六个小时没人发现。那六个小时的训练不仅白跑,还霸占着卡——等于…

2026/9/19 0:00:30 阅读更多 →
OpenCloud 中的 Go 类型安全转换库 spf13/cast:从零值回退到泛型 API 的完整实战指南

OpenCloud 中的 Go 类型安全转换库 spf13/cast:从零值回退到泛型 API 的完整实战指南

OpenCloud 中的 Go 类型安全转换库 spf13/cast:从零值回退到泛型 API 的完整实战指南 【免费下载链接】opencloud 🌤️ OpenCloud is the open source platform for file management, sharing and collaboration. Simple and sovereign. 项目地址: htt…

2026/9/19 0:00:30 阅读更多 →

周新闻

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验 【免费下载链接】ai The AI Toolkit for TypeScript. From the creators of Next.js, the AI SDK is a free open-source library for building AI-powered applications and ag…

2026/9/19 3:59:36 阅读更多 →
Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化 【免费下载链接】refine A React Framework for building internal tools, admin panels, dashboards & B2B apps with unmatched flexibility. 项目地址: https://gitcode.com/GitH…

2026/9/19 3:53:08 阅读更多 →
Flutter应用改名全指南:从Android到iOS的配置与工具实践

Flutter应用改名全指南:从Android到iOS的配置与工具实践

刚接一个外包项目时,甲方要求把工程里临时用的应用名改成正式产品名。我本来觉得“改名”这种小事,打开配置文件改一行不就完了?结果真动手才发现,Flutter项目里“应用名称”根本不是一处配置,而是一整套散落在 Androi…

2026/9/19 4:02:43 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/16 22:31:27 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/15 21:39:18 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/16 22:32:59 阅读更多 →