AMP

amp-lightbox

 
您现在可以使用此组件,在有效的 AMP 文档之外使用此组件的 Bento 版本。在Bento 指南中了解更多信息。

描述

在全视口“灯箱”模态框中显示元素。

 

必需脚本

<script async custom-element="amp-lightbox" src="https://cdn.ampproject.org/v0/amp-lightbox-0.1.js"></script>

支持的布局

用法

amp-lightbox 组件定义在全视口覆盖层/模态框中显示的子元素。当用户点击或单击元素(例如,按钮)时,单击元素的 on 属性中引用的 amp-lightbox ID 会触发灯箱占据整个视口并显示 amp-lightbox 的子元素。

对于在灯箱中显示图像,还有<amp-image-lightbox>组件。要在灯箱中显示图像库,可以使用<amp-lightbox-gallery>

属性

id

灯箱的唯一标识符。

layout

必须设置为 nodisplay

animate-in(可选)

定义打开灯箱的动画样式。默认情况下,这将设置为 fade-in。有效值包括 fade-infly-in-bottomfly-in-top

fly-in-topfly-in-bottom 动画预设会修改 amp-lightbox 元素的 transform 属性。不要依赖于直接转换 amp-lightbox 元素。如果您需要应用转换,请将其设置在嵌套元素上。

data-close-button-aria-label(可选)

用于为为辅助功能添加的自动生成的关闭按钮设置 ARIA 标签的可选属性。默认情况下,应用的标签是“关闭模态框”。

scrollable(可选)

当存在 scrollable 属性时,灯箱的内容可以在超出灯箱高度时滚动。

操作

open(默认)

打开灯箱。

close

关闭灯箱。

样式

您可以使用标准 CSS 设置 amp-lightbox 的样式。

辅助功能

在键盘上按 Esc 键或将焦点设置在灯箱外部的元素上会关闭灯箱。或者,在一个或多个灯箱内的元素上设置 on 属性并将其方法设置为 close,在点击或单击该元素时会关闭灯箱。关闭后,焦点将返回到触发元素。

出于辅助功能考虑,如果用户在打开时没有在灯箱中提供焦点(使用 autofocus 属性或强制在打开时聚焦),则焦点将设置在使用 on:tap 的第一个元素上。否则,将创建仅对屏幕阅读器可见的关闭按钮,并可选使用 data-close-button-aria-label 属性值,并将其聚焦。

<button on="tap:quote-lb">See Quote</button>
<amp-lightbox id="quote-lb" layout="nodisplay">
  <blockquote>
    "Don't talk to me about JavaScript fatigue" - Horse JS
  </blockquote>
  <button on="tap:quote-lb.close">Nice!</button>
</amp-lightbox>

验证

请参阅 AMP 验证器规范中的amp-lightbox 规则

需要更多帮助?

您已经阅读了本文档十几次,但它并没有真正涵盖您的所有问题?也许其他人也有同感:在 Stack Overflow 上与他们联系。

转到 Stack Overflow
发现错误或缺少功能?

AMP 项目强烈鼓励您的参与和贡献!我们希望您成为我们开源社区的持续参与者,但也欢迎您对您特别感兴趣的问题进行一次性贡献。

转到 GitHub