重要提示:此文档不适用于您当前选择的格式 广告!
amp-fx-collection
描述
提供预设视觉效果集合,例如视差。
必需的脚本
<script async custom-element="amp-fx-collection" src="https://cdn.ampproject.org/v0/amp-fx-collection-0.1.js"></script>
用法
amp-fx-collection
组件提供了一组预设的视觉效果,例如视差,可以通过属性轻松地在任何元素上启用。
应用视觉效果
要为元素指定视觉效果,请添加 amp-fx
属性,并将其值设置为视觉效果。
以下是 amp-fx-collection
支持的视觉效果
视差
parallax
效果允许元素移动,就好像它相对于页面内容的前景更近或更远一样。当用户滚动页面时,元素会根据分配给 data-parallax-factor
属性的值更快或更慢地滚动。
data-parallax-factor
指定一个十进制值,该值控制元素相对于滚动速度的滚动速度快多少或慢多少
- 当用户向下滚动页面时,大于
1
的值会向上滚动元素(元素滚动速度更快)。 - 当用户向下滚动时,小于
1
的值会向下滚动元素(元素滚动速度较慢)。 - 值
1
的行为正常。 - 值
0
会有效地使元素与页面一起固定滚动。
在此示例中,当用户滚动页面时,h1
元素相对于页面的内容滚动得更快。
<h1 amp-fx="parallax" data-parallax-factor="1.5"> A title that moves faster than other content. </h1>
淡入
fade-in
效果允许元素在目标元素在视口中可见后淡入。
data-duration
(可选)
这是动画发生的持续时间。默认值为 1000ms
。
在下面的示例中,动画持续时间超过 2000ms
。
<div amp-fx="fade-in" data-duration="2000ms"> <amp-img width="1600" height="900" layout="responsive" src="https://picsum.photos/1600/900?image=1069" ></amp-img> </div>
data-easing
(可选)
此参数允许您在动画的持续时间内改变动画的速度。默认值为 ease-in
,即 cubic-bezier(0.40, 0.00, 0.40, 1.00)
。您可以从可用的预设中选择一个
"linear"
-cubic-bezier(0.00, 0.00, 1.00, 1.00)
"ease-in-out"
-cubic-bezier(0.80, 0.00, 0.20, 1.00)
"ease-in"
-cubic-bezier(0.80, 0.00, 0.60, 1.00)
(默认)"ease-out"
-cubic-bezier(0.40, 0.00, 0.40, 1.00)
- 指定
custom-bezier()
输入。
在下面的示例中,动画加速曲线是自定义指定的 cubic-bezier(...)
曲线。
<div amp-fx="fade-in" data-easing="cubic-bezier(0.40, 0.00, 0.40, 1.00)"> <amp-img width="1600" height="900" layout="responsive" src="https://picsum.photos/1600/900?image=1069" ></amp-img> </div>
data-margin-start
(可选)
此参数确定何时触发定时动画。<percent>
中指定的值表示当元素越过视口百分比时应触发动画。默认值为 5%
。
在下面的示例中,动画在元素从底部越过视口的 20% 之前不会开始。
<div amp-fx="fade-in" data-margin-start="20%"> <amp-img width="1600" height="900" layout="responsive" src="https://picsum.photos/1600/900?image=1069" ></amp-img> </div>
淡入滚动
fade-in-scroll
效果允许您在元素在视口中滚动时更改元素的透明度。这将创建一个依赖于滚动的淡入动画。默认情况下,一旦元素完全可见,我们就不再为透明度设置动画。
data-margin-start
(可选)
此参数确定何时触发定时动画。<percent>
中指定的值表示当元素越过视口百分比时应触发动画。默认值为 0%
。
data-margin-end
(可选)
此参数确定何时停止动画。<percent>
中指定的值表示当目标元素的可视量达到指定值时,动画应已完成。默认值为 50%
。
在下面的示例中,<div>
从底部越过视口的 80% 时完全可见。
<div amp-fx="fade-in-scroll" data-margin-end="80%"> <amp-img width="1600" height="900" layout="responsive" src="https://picsum.photos/1600/900?image=1069" ></amp-img> </div>
data-repeat
(可选)
默认情况下,一旦元素完全可见,我们就不再为透明度设置动画。如果您希望透明度随着滚动而变化,即使元素已完全加载,也请在动画中指定此变量。
在下面的示例中,动画完全依赖于滚动,并且当用户滚动时,<div>
会淡入和淡出。
<div amp-fx="fade-in-scroll" data-repeat> <amp-img width="1600" height="900" layout="responsive" src="https://picsum.photos/1600/900?image=1069" ></amp-img> </div>
float-in-top
、float-in-bottom
当文档向上或向下滚动时,float-in-top
和 float-in-bottom
效果会将 position: fixed
元素滑入和滑出视图。
具有 amp-fx="float-in-top"
或 amp-fx="float-in-bottom"
的元素必须具有以下 CSS 属性
position: fixed
overflow: hidden
- 如果它是
top
,则top: 0
- 如果它是
bottom
,则bottom: 0
如果未设置其中任何一个,则不会应用该效果,并且会在 开发模式下抛出警告。
fly-in-bottom
、fly-in-left
、fly-in-right
、fly-in-top
fly-in-bottom
、fly-in-left
、fly-in-right
和 fly-in-top
效果允许在元素进入视口后将其位置平移指定量。
data-duration
(可选)
这是动画发生的持续时间。默认值因设备而异,如下所示:在 480 px
(移动设备的最小宽度)和 1000px
(笔记本电脑屏幕的最小宽度)之间,我们将默认持续时间缩放到 400ms
和 600ms
之间。
以下是一些示例,可帮助您更好地理解这一点
- 屏幕宽度 -
610px
,fly-in-bottom
的默认持续时间为450ms
。 - 屏幕宽度 -
675px
,fly-in-bottom
的默认持续时间为475ms
。 - 屏幕宽度 -
740px
,fly-in-bottom
的默认持续时间为500ms
。 - 屏幕宽度 -
805px
,fly-in-bottom
的默认持续时间为525ms
。 - 屏幕宽度 -
870px
,fly-in-bottom
的默认持续时间为550ms
。
如果用户将 data-duration
的默认值覆盖为 Xms
,则相同的默认值将应用于所有设备。
data-easing
(可选)
此参数允许您在动画的持续时间内改变动画的速度。默认值为 ease-out
,即 cubic-bezier(0.40, 0.00, 0.40, 1.00)
。您可以从可用的预设中选择一个
"linear"
-cubic-bezier(0.00, 0.00, 1.00, 1.00)
"ease-in-out"
-cubic-bezier(0.80, 0.00, 0.20, 1.00)
"ease-in"
-cubic-bezier(0.80, 0.00, 0.60, 1.00)
"ease-out"
-cubic-bezier(0.40, 0.00, 0.40, 1.00)
(默认)- 指定
custom-bezier()
输入。
data-fly-in-distance
(可选)
此参数确定要进行的平移。该值以视口的 <percent>
指定。默认值如下
`amp-fx` 值 | 移动设备 | 平板电脑 | 桌面设备 |
---|---|---|---|
`fly-in-bottom` | `25%` | `25%` | `33%` |
`fly-in-top` | `25%` | `25%` | `33%` |
`fly-in-left` | `100%` | `100%` | `100%` |
`fly-in-right` | `100%` | `100%` | `100%` |
在下面的示例中,元素沿 Y 轴平移了视口的 20%。
<div amp-fx="fly-in-bottom" data-fly-in-distance="20%"> <amp-img width="1600" height="900" layout="responsive" src="https://picsum.photos/1600/900?image=1069" ></amp-img> </div>
data-margin-start
(可选)
此参数确定何时触发定时动画。<percent>
中指定的值表示当元素越过视口百分比时应触发动画。默认值为 5%
。
组合视觉效果
开发人员还可以将 amp-fx
预设组合在一起以创建组合动画。
在下面的示例中,元素沿 Y 轴平移,并且在 1000ms
的持续时间内将其透明度从 0
更改为 1
。
<div amp-fx="fade-in fly-in-bottom" data-duration="1000ms"> <amp-img width="1600" height="900" layout="responsive" src="https://picsum.photos/1600/900?image=1069" ></amp-img> </div>
但是,有些预设组合在一起不会产生很好的效果。在这种情况下,我们接受列出的第一个预设,并忽略冲突的预设并在控制台中发出警告。
在下面的示例中,元素正在被两个冲突的预设 parallax
和 fly-in-bottom
沿 Y 轴平移。在这种情况下,我们只允许 parallax
动画,并忽略 fly-in-bottom
预设。
<div amp-fx="parallax fly-in-bottom" data-parallax-factor="1.5"> <amp-img width="1600" height="900" layout="responsive" src="https://picsum.photos/1600/900?image=1069" ></amp-img> </div>
以下是不建议组合的预设组列表,AMP 建议您不要组合
parallax
、fly-in-top
、fly-in-bottom
、fly-in-left
、fly-in-right
、fade-in
、fade-in-scroll
。
验证
请参阅 AMP 验证器规范中的 amp-fx-collection
规则。
您已阅读此文档十几次,但它并没有真正涵盖您所有的问题?也许其他人也有同样的感觉:请在 Stack Overflow 上与他们联系。
转到 Stack Overflow 发现错误或缺少功能?AMP 项目强烈鼓励您的参与和贡献!我们希望您能成为我们开源社区的长期参与者,但我们也欢迎您为自己特别感兴趣的问题做出一次性贡献。
转到 GitHub