AMP

重要事項:本文件不適用於您目前選取的格式 stories

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 會觸發燈箱佔據整個視 viewport,並顯示 amp-lightbox 的子元素。

如要在燈箱中顯示圖片,另有 <amp-image-lightbox> 元件。如要在燈箱中顯示圖片庫,您可以使用 <amp-lightbox-gallery>

屬性

id

燈箱的專屬 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 的樣式。

無障礙功能

在鍵盤上按下 Escape 鍵,或將焦點設定在燈箱外部的元素上,即可關閉燈箱。或者,在燈箱內的一個或多個元素上設定 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