DigitalOcean 为您的旅程各个阶段提供云产品。 立即开始使用 $200 免费积分!
offset-anchor
属性在应用它的框内定义一个点,作为沿 offset-path
移动的锚点。
这有点冗长,让我们分解一下。
你有一个元素,比如一个框
查看 CodePen 上 Geoff Graham (@geoffgraham) 的 橙色方框。
你想让这个框沿着一条路径移动,比如一条波浪线。 我们可以使用 SVG 在 HTML 中直接制作这条线,并将其用作框的 offset-path
。 我们使用 offset-distance
属性创建动画
查看 CodePen 上 Geoff Graham (@geoffgraham) 的 路径上的橙色方块。
很好,很好。 但是如果我们想让框看起来像是悬挂在直线上呢? 你知道,就像一个人沿着滑索滑行。
这就是 offset-anchor
的作用! 它标记元素上的一个点,并使用它来将元素定位在路径上。
这里有一个例子,三个不同的框以不同的锚点附着在同一条路径上
查看 CodePen 上 Geoff Graham (@geoffgraham) 的 NMbEpy。
语法
.box {
offset-anchor: [auto | ];
}
值
auto
: 采用offset-position
的值,只要该值不是auto
,并且offset-path
设置为none
。位置
: 一个单位,从它所在的容器的相对宽度和高度计算得出。 例如,
50% 50%
将是正中心。 请注意,关键字在这里有效,就像background-position
中的center center
会返回相同的结果。: 一个单位,从元素框的左上角偏移锚点。
值得注意的是,position
是一个可动画属性。
浏览器支持
在撰写本文时,offset-*
属性仍被视为实验性功能。 如果当前的浏览器支持不足让你犹豫是否要在项目中使用它,那么你可能需要考虑使用 GSAP 来完成此级别的动画。 这将为您提供目前最广泛的浏览器支持。
此浏览器支持数据来自 Caniuse,它提供了更多详细信息。 数字表示浏览器从该版本开始支持该功能。
桌面
Chrome | Firefox | IE | Edge | Safari |
---|---|---|---|---|
46 | 72 | 否 | 79 | 16.0 |
移动/平板
Android Chrome | Android Firefox | Android | iOS Safari |
---|---|---|---|
127 | 127 | 127 | 16.0 |
从 Chrome 46 和 Opera 33(以及相关的移动版本)开始,Blink 中有“初始支持”(没有标记)。