偏移锚点

Avatar of Geoff Graham
Geoff Graham

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,它提供了更多详细信息。 数字表示浏览器从该版本开始支持该功能。

桌面

ChromeFirefoxIEEdgeSafari
46727916.0

移动/平板

Android ChromeAndroid FirefoxAndroidiOS Safari
12712712716.0

从 Chrome 46 和 Opera 33(以及相关的移动版本)开始,Blink 中有“初始支持”(没有标记)。

其他信息