MOTION HUB

滚动进度条

Scroll Progress
#scroll-progress · 49/72
SCROLL · 滚动查看

参数调改

PLAYGROUND
进度条高度--bar_h
212
px
起始色--color_a
结束色--color_b
轨道底色--track_color

实现要点

NOTES
  1. 01

    animation-timeline: scroll(root) 把动画进度直接绑定到根滚动器位置,duration 声明为 auto,滚动即时间轴,全程零 scroll 事件监听。

  2. 02

    进度用 scaleX(from 0 to 1) + transform-origin: 0 50%,缩放发生在合成器路径;改 width 会每帧触发 layout。

  3. 03

    @supports not (animation-timeline: scroll()) 里给静态降级(本例保持 35% 宽),不支持的环境页面功能不受影响。

  4. 04

    本 demo 放在一个可滚动文档里才有效果:根滚动器必须是该文档自身,嵌入 iframe 时 iframe 即滚动容器。

  5. 05

    演示中的自动滚动只是预览辅助(用户滚动、触摸或按下即停);生产环境删除该脚本,效果本体纯 CSS。

  6. 06

    demo 顶部有一条 64px 固定渐隐带(.sp-scrim),滚动内容在触及页顶前淡出,避免长文标题与进度条/页顶元素重叠。

源代码

SOURCE

加载源代码…