重要事項:本文件不適用於您目前選取的格式 email!
amp-pan-zoom
說明
為任意內容提供縮放和平移功能。
必要腳本
<script async custom-element="amp-pan-zoom" src="https://cdn.ampproject.org/v0/amp-pan-zoom-0.1.js"></script>
支援的版面配置
用法
<amp-pan-zoom>
元件接受一個任意內容的子元素,並讓使用者能夠透過雙擊或雙指捏合縮放手勢來縮放和平移內容。在可縮放內容或其子元素上註冊的點擊事件將在 300 毫秒延遲後觸發。
<amp-layout layout="responsive" width="4" height="3"> <amp-pan-zoom layout="fill"> <svg> ... </svg> </amp-pan-zoom> </amp-layout>
有效的子標籤
請參閱 amp-pan-zoom 的 合格子標籤列表。
屬性
max-scale (選填)
指定最大縮放比例,應為 1 到 9 的正數。預設值為 3。
initial-scale (選填)
指定預設縮放比例,應為 1 到 9 的正數。預設值為 1。
initial-x、initial-y (選填)
指定預設平移座標,否則兩者都設定為 0。該值應為整數。
reset-on-resize (選填)
指將圖片置中並將圖片比例設定回 1 的功能。設定此屬性會導致元件在圖片本身大小調整時重設可縮放內容。
controls (選填)
顯示預設控制項(放大/縮小按鈕),這些控制項可以透過公開 CSS 類別進行自訂。
通用屬性
此元素包含擴展到 AMP 元件的 通用屬性。
動作
transform
transform
動作接受 scale
、x
、y
作為參數,並設定子內容的 CSS transform
屬性。如果未指定 x
或 y
值,則內容會縮放至中心。
假設頁面上存在一個 id 為 pan-zoom
的 <amp-pan-zoom>
元件,一個帶有 on="tap:pan-zoom.transform(scale=3)"
的按鈕將在內容中心縮放至 3 倍比例,一個帶有 on="tap:pan-zoom.transform(scale=3, x=50, y=10)"
的按鈕將首先將內容縮放至 3 倍比例,然後將內容向左移動 50 像素,向上移動 10 像素。請考慮動畫後直接應用於內容 CSS transform
屬性的 scale
、x
和 y
屬性。
活動
transformEnd
每當平移或縮放動畫完成時,<amp-pan-zoom>
元件就會觸發 transformEnd
事件。此事件會發出 scale
、x
和 y
參數。scale
參數包含正在縮放的子內容的目前比例。x
和 y
參數分別包含子內容從中心開始的 x 和 y 平移(以像素為單位)。
此範例包含一個 amp-pan-zoom
元件,該元件將在 transformEnd
時更新 amp-state
。
<amp-state id="transform"> <script type="application/json"> { "scale": 1, "y": 0, "x": 0 } </script> </amp-state> <p [text]="'Current scale: ' + transform.scale + ', x: ' + transform.x + ', y: ' + transform.y" > Current scale: 1 </p> <amp-pan-zoom layout="responsive" width="1" height="1" id="pan-zoom" on="transformEnd:AMP.setState({transform: {scale: event.scale, x: event.x, y: event.y}})" > ... </amp-pan-zoom>
樣式
以下公開 CSS 類別可用於自訂縮放按鈕
.amp-pan-zoom-button .amp-pan-zoom-in-icon .amp-pan-zoom-out-icon;
使用 .amp-pan-zoom-button
自訂所有按鈕的尺寸、定位、背景顏色、邊框半徑。使用 .amp-pan-zoom-in-icon
自訂放大按鈕的圖示。使用 .amp-pan-zoom-out-icon
自訂縮小按鈕的圖示。您也可以完全隱藏這些按鈕,並使用 transform
動作建立自己的按鈕。若要隱藏它們,只需套用
.amp-pan-zoom-button { display: none; }
驗證
請參閱 AMP 驗證器規格中的 amp-pan-zoom 規則。
您已經讀過這份文件十幾次,但它仍然沒有涵蓋您的所有問題?也許其他人也有同感:在 Stack Overflow 上與他們聯繫。
前往 Stack Overflow 發現錯誤或缺少功能?AMP 專案強烈鼓勵您的參與和貢獻!我們希望您能成為我們開放原始碼社群的長期參與者,但我們也歡迎您針對您特別熱衷的問題做出一次性貢獻。
前往 GitHub