amp-lightbox-gallery
描述
提供「燈箱」體驗。 在使用者互動時,UI 元件會展開以填滿檢視區,直到使用者關閉為止。
必要的指令碼 (Scripts)
<script async custom-element="amp-lightbox-gallery" src="https://cdn.ampproject.org/v0/amp-lightbox-gallery-0.1.js"></script>
用法
amp-lightbox-gallery
元件為 AMP 元件(例如 amp-img
、amp-carousel
)提供「燈箱」體驗。 當使用者與 AMP 元素互動時,UI 元件會展開以填滿檢視區,直到使用者關閉為止。 目前僅支援圖片。
要使用 amp-lightbox-gallery
,請確保所需的指令碼包含在您的 <head>
區段中,然後在 <amp-img>
或 <amp-carousel>
元素上新增 lightbox
屬性。
若要在燈箱中顯示單張圖片,也可以使用 <amp-image-lightbox>
元件。 若要以燈箱顯示其他類型的元素,請使用 <amp-lightbox>
。
使用 <amp-img>
顯示燈箱
點擊任何 <amp-img>
會在燈箱圖庫中開啟圖片。 燈箱圖庫會處理圖片(例如縮放和平移)、啟用滑動以在圖片之間導航,並提供縮圖圖庫檢視,以便在網格中瀏覽所有圖片縮圖。
<amp-img src="cat.jpg" width="100" height="100" lightbox></amp-img> <amp-img src="dog.jpg" width="100" height="100" lightbox></amp-img> <amp-img src="bird.jpg" width="100" height="100" lightbox></amp-img>
使用 <amp-carousel>
顯示燈箱
您可以在 <amp-carousel>
上新增 lightbox
屬性,以將其所有子元素放入燈箱。 目前,<amp-lightbox-gallery>
元件僅支援包含 <amp-img>
作為子元素的輪播。 當您在燈箱中導航輪播項目時,原始輪播投影片會同步,以便在關閉燈箱時,使用者最終會回到與原本相同的投影片。 目前僅支援 type='slides'
輪播。
<amp-carousel lightbox width="1600" height="900" layout="responsive" type="slides" > <amp-img src="image1" width="200" height="100"></amp-img> <amp-img src="image1" width="200" height="100"></amp-img> <amp-img src="image1" width="200" height="100"></amp-img> </amp-carousel>
新增說明文字
您可以選擇為燈箱中的每個元素指定說明文字。 <amp-lightbox-gallery>
會按照以下優先順序自動讀取和顯示這些欄位:
figcaption
(如果燈箱元素是 figure 的子元素)aria-describedby
alt
aria-label
aria-labelledby
在以下範例中,<amp-lightbox-gallery>
顯示 figcaption
值作為其描述,顯示「多倫多的 CN 塔是...」。
<figure> <amp-img id="hero-img" lightbox="toronto" src="https://picsum.photos/1600/900?image=1075" layout="responsive" width="1600" height="900" alt="Picture of CN tower." > </amp-img> <figcaption class="image"> Toronto's CN tower was built in 1976 and was the tallest free-standing structure until 2007. </figcaption> </figure>
在以下範例中,<amp-lightbox-gallery>
顯示 alt
值作為其描述,顯示「CN 塔的圖片」。
<amp-img id="hero-img" lightbox="toronto" src="https://picsum.photos/1600/900?image=1075" layout="responsive" width="1600" height="900" alt="Picture of CN tower" > </amp-img>
實作縮圖預覽
燈箱項目具有縮圖圖庫檢視。 您可以選擇透過屬性 lightbox-thumbnail-id
為您的燈箱元素指定縮圖項目,該屬性參考具有 layout="nodisplay"
的 <amp-img>
元素的 id
。
<amp-youtube width="480" height="270" layout="responsive" data-videoid="lBTCB7yLs8Y" lightbox-thumbnail-id="my-thumbnail-img" > </amp-youtube> <amp-img id="my-thumbnail-img" width="200" height="200" layout="nodisplay" src="https://picsum.photos/200/200?image=1074" > </amp-img>
如果未指定縮圖,<amp-img>
元素將按照 object-fit: cover
進行裁剪,<amp-video>
將使用其 poster
屬性中指定的圖片 src
,並且占位符圖片將用於具有占位符的燈箱元素。
樣式
您可以透過使用標準 CSS 鎖定 amp-lightbox-gallery-caption
類別來設定 amp-lightbox-gallery
元件的說明文字樣式。 可以設定樣式的屬性包括 font-size
和 color
。
動作 (Actions)
開啟 (open)
開啟燈箱圖庫。 如果您指定圖片 id
:on="tap:amp-lightbox-gallery.open(id='image-id')"
,則可以透過點擊另一個元素來觸發。
分析 (Analytics)
若要追蹤 amp-lightbox-gallery
的使用情況,請使用以下分析事件之一:
lightboxOpened
此事件追蹤使用者點擊燈箱 <amp-img>
時開啟燈箱的時間。
您可以使用以下程式碼片段追蹤此事件:
<amp-analytics> <script type="application/json"> { "requests": { "open": "https://foo.com/open" }, "triggers": { "trackLightboxOpened": { "on": "lightboxOpened", "request": "open" } } } </script> </amp-analytics>
thumbnailsViewToggled
此事件追蹤當使用者在燈箱檢視中時,點擊觸發器觸發縮圖檢視的時間。
您可以使用以下程式碼片段追蹤此事件:
<amp-analytics> <script type="application/json"> { "requests": { "thumb": "https://foo.com/thumb" }, "triggers": { "trackThumbnailsViewToggled": { "on": "thumbnailsViewToggled", "request": "thumb" } } } </script> </amp-analytics>
descriptionOverflowToggled
此事件追蹤使用者透過點擊描述來展開/摺疊描述時切換描述的時間,追蹤與燈箱圖片描述的互動。
您可以使用以下程式碼片段追蹤此事件:
<amp-analytics> <script type="application/json"> { "requests": { "descOverflow": "https://foo.com/descOverflow" }, "triggers": { "trackDescriptionOverflowed": { "on": "descriptionOverflowToggled", "request": "descOverflow" } } } </script> </amp-analytics>
驗證
請參閱 AMP 驗證器規格中的 amp-image-lightbox-gallery
規則。
您已經閱讀這份文件十幾次了,但它真的沒有涵蓋您的所有問題嗎? 也許其他人也有同樣的感受:在 Stack Overflow 上與他們聯繫。
前往 Stack Overflow 發現錯誤或缺少功能?AMP 專案強烈鼓勵您的參與和貢獻! 我們希望您成為我們開源社群的持續參與者,但我們也歡迎您對您特別感興趣的問題做出一次性貢獻。
前往 GitHub