重要提示:此文档不适用于您当前选择的格式电子邮件!
amp-image-slider
描述
一个用于比较两张图片的滑块。
必需脚本
<script async custom-element="amp-image-slider" src="https://cdn.ampproject.org/v0/amp-image-slider-1.0.js"></script>
<script async custom-element="amp-image-slider" src="https://cdn.ampproject.org/v0/amp-image-slider-1.0.js"></script> <link rel="stylesheet" href="https://cdn.ampproject.org/v0/amp-image-slider-1.0.css">
支持的布局
用法
amp-image-slider
组件需要正好两个 amp-img
元素作为其子元素。第一个子图像显示在左侧,第二个子图像显示在右侧。
amp-image-slider
组件还可以包含两个 <div>
元素,用作图像的标签。标签会覆盖在图像之上。左侧图像的标签需要 first
属性,而右侧标签需要 second
属性。默认情况下,标签显示在图像的左上角。
<amp-image-slider layout="responsive" width="100" height="200"> <amp-img src="/green-apple.jpg" alt="A green apple"></amp-img> <amp-img src="/red-apple.jpg" alt="A red apple"></amp-img> <div first>This apple is green</div> <div second>This apple is red</div> </amp-image-slider>
滑块加载后,比较的图像由一个垂直条分隔,滑块的中心会显示有用的箭头提示。
用户可以按下鼠标或触摸来将滑块移动到指针的位置,然后移动指针来左右拖动滑块条。对于左侧图像,仅显示条左侧的部分;对于右侧图像,仅显示右侧部分。
如果您在 amp-image-slider
元素上指定 tabindex
,则用户可以使用键盘导航滑块。按下向下、向左或向右箭头会使滑块条向相应的方向移动一步。按下 Home 键会将滑块移动到中心。按下 PageUp 或 PageDown 键会移动到滑块主体的左端或右端。
自定义标签
您可以通过提供自定义的 CSS 类来自定义标签。您可以使用 top
、right
、bottom
、left
和 transform: translate(...)
规则来控制其位置。其他规则(例如 border
、background-color
等)可用于自定义标签的样式。
以下示例显示了一个图像滑块,左侧标签在左上方,右侧标签在右上方
<!-- head --> <style amp-custom> .top-right { top: 0; right: 0; } </style> <!-- body --> <amp-image-slider layout="responsive" width="100" height="200"> <amp-img src="/green-apple.jpg" alt="A green apple"></amp-img> <amp-img src="/red-apple.jpg" alt="A red apple"></amp-img> <div first>This apple is green</div> <div second class="top-right">This apple is red</div> </amp-image-slider>
自定义提示
默认情况下,提示是一对带有阴影的白色箭头。要自定义左侧和右侧提示,您可以覆盖 .amp-image-slider-hint-left
和 .amp-image-slider-hint-right
类。要将箭头替换为自定义图像,请覆盖 background-image
。要删除阴影,请设置 filter: none;
。
以下示例用三角形替换箭头
.amp-image-slider-hint-left { width: 10px; height: 20px; background-size: 10px 20px; margin-right: 10px; background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' width='10' height='20' viewBox='0 0 10 20'%3e%3cpolygon points='10,0 0,10 10,20' style='fill:white;stroke:black;stroke-width:1' /%3e%3c/svg%3e"); } .amp-image-slider-hint-right { width: 10px; height: 20px; background-size: 10px 20px; margin-left: 10px; background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' width='10' height='20' viewBox='0 0 10 20'%3e%3cpolygon points='0,0 10,10 0,20' style='fill:white;stroke:black;stroke-width:1' /%3e%3c/svg%3e"); }
属性
disable-hint-reappear
一旦用户开始与滑块交互(例如单击鼠标按钮、触摸滑块以及按下键来移动滑块),在垂直条中心显示的提示就会消失。如果提示离开视口然后再返回,则会重新出现。要停止这种重新出现的行为,请在图像滑块中添加 disable-hint-reappear
属性。
以下示例显示了一个没有重新出现提示的图像滑块
<amp-image-slider layout="responsive" width="100" height="200" disable-hint-reappear > <amp-img src="/green-apple.jpg" alt="A green apple"></amp-img> <amp-img src="/red-apple.jpg" alt="A red apple"></amp-img> <div first>This apple is green</div> <div second>This apple is red</div> </amp-image-slider>
initial-slider-position
默认情况下,垂直滑块条位于滑块主体的中心。要将初始滑块位置移动到其他位置,请将 initial-slider-position
设置为 0
和 1
之间的值,对应于从左侧滑块边缘的 0% 到 100%。
以下示例显示了一个初始滑块位置在左侧的图像滑块
<amp-image-slider layout="responsive" width="100" height="200" initial-slider-position="0" > <amp-img src="/green-apple.jpg" alt="A green apple"></amp-img> <amp-img src="/red-apple.jpg" alt="A red apple"></amp-img> <div first>This apple is green</div> <div second>This apple is red</div> </amp-image-slider>
step-size
当焦点位于滑块上时,每次按下向左和向右键盘按钮会使滑块条移动 10%。要使用不同的步长,请将 step-size
设置为 0
和 1
之间的值,对应于每次按键移动 0% 到 100%。
以下示例显示了一个步长为 25% 的图像滑块
<amp-image-slider layout="responsive" width="100" height="200" step-size="0.25"> <amp-img src="/green-apple.jpg" alt="A green apple"></amp-img> <amp-img src="/red-apple.jpg" alt="A red apple"></amp-img> <div first>This apple is green</div> <div second>This apple is red</div> </amp-image-slider>
操作
seekTo
slider-id.seekTo(percent=[0,1])
将相应的滑块的滑块条移动到给定百分比的左侧位置。
版本说明
1.0
中进行了一些更新和修改,这些更新和修改与 0.1
版本略有不同。本节介绍了这些更新和差异。
属性更新
0.1 参数 |
更新类型 | 1.0 参数 |
注意 |
---|---|---|---|
disable-hint-reappear |
已重命名 | display-hint-once |
目的是不使用带有负面名称的属性。 |
验证
请参阅 AMP 验证器规范中的 amp-image-slider
规则。
您已阅读本文档十几次,但它并未真正涵盖您所有的问题?也许其他人也有同感:请在 Stack Overflow 上与他们联系。
转到 Stack Overflow 发现错误或缺少功能?AMP 项目强烈鼓励您的参与和贡献!我们希望您能成为我们开源社区的长期参与者,但我们也欢迎您针对您特别感兴趣的问题做出一次性贡献。
转到 GitHub