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 中有“初始支持”(没有标记)。