amp-date-countdown
說明
顯示倒數至指定日期的序列。
必要指令碼
<script async custom-element="amp-date-countdown" src="https://cdn.ampproject.org/v0/amp-date-countdown-0.1.js"></script>
支援的版面配置
用法
顯示倒數計時序列,以指示事件預定發生前的剩餘時間。
amp-date-countdown
提供倒數計時時間資料,您可以在 AMP 頁面中呈現這些資料。藉由在 amp-date-countdown
標籤中提供特定的屬性,amp-date-countdown
擴充功能會傳回時間參數的清單,您可以將這些參數傳遞至 amp-mustache
範本以進行呈現。請參閱下方的清單,以瞭解每個傳回的時間參數。
<amp-date-countdown timestamp-seconds="2147483648" layout="fixed-height" height="50" > <template type="amp-mustache"> <p class="p1"> {{d}} days, {{h}} hours, {{m}} minutes and {{s}} seconds until <a href="https://en.wikipedia.org/wiki/Year_2038_problem">Y2K38</a>. </p> </template> </amp-date-countdown>
傳回的時間參數
此表格列出您可以在 Mustache 範本中指定的格式
格式 | 意義 |
---|---|
d | 天 - 0、1、2、...、12、13...無限大 |
dd | 天 - 00、01、02、03...無限大 |
h | 小時 - 0、1、2、...、12、13...無限大 |
hh | 小時 - 01、02、03...無限大 |
m | 分鐘 - 0、1、2、...、12、13...無限大 |
mm | 分鐘 - 01、01、02、03...無限大 |
s | 秒 - 0、1、2、...、12、13...無限大 |
ss | 秒 - 00、01、02、03...無限大 |
days | 天或多天的國際化字串 |
hours | 小時或多小時的國際化字串 |
minutes | 分鐘或多分鐘的國際化字串 |
seconds | 秒或多秒的國際化字串 |
格式化值的範例
此表格提供 Mustache 範本中指定的格式化值範例,以及範例輸出
格式 | 範例輸出 | 備註 |
---|---|---|
{hh}:{mm}:{ss} | 04:24:06 | - |
{h} {hours} 和 {m} {minutes} 和 {s} {seconds} | 4 小時和 1 分鐘和 45 秒 | - |
{d} {days} {h}:{mm} | 1 天 5:03 | - |
{d} {days} {h} {hours} {m} {minutes} | 50 天 5 小時 10 分鐘 | - |
{d} {days} {h} {hours} {m} {minutes} | 20 天 5 小時 10 分鐘 | - |
{h} {hours} {m} {minutes} | 240 小時 10 分鐘 | biggest-unit='hours' |
{d} {days} {h} {hours} {m} {minutes} | 50 天 5 小時 10 分鐘 | locale='zh-cn' |
屬性
您必須至少指定以下其中一個必要屬性:end-date
、timeleft-ms
、timestamp-ms
、timestamp-seconds
。
end-date
要倒數計時的 ISO 格式日期。例如:2020-06-01T00:00:00+08:00
timestamp-ms
毫秒為單位的 POSIX Epoch 值;假設為 UTC 時區。例如:timestamp-ms="1521880470000"
。
timestamp-seconds
秒為單位的 POSIX Epoch 值;假設為 UTC 時區。例如:timestamp-seconds="1521880470"
。
timeleft-ms
剩餘的倒數計時時間值,以毫秒為單位。例如,剩餘 48 小時 timeleft-ms="172800000"
。
offset-seconds (選填)
代表要從 end-date
加減的秒數的正數或負數。例如,offset-seconds="60"
會將 60 秒加到結束日期。
when-ended (選填)
指定計時器在達到 0 秒時是否停止。值可以設定為 stop
(預設值),表示計時器在 0 秒時停止,且不會超過最終日期;或設定為 continue
,表示計時器應在達到 0 秒後繼續計時。
locale (選填)
每個計時器單位的國際化語言字串。預設值為 en
(英文)。
支援的值
代碼 | 語言 |
---|---|
de | 德文 |
en | 英文 |
es | 西班牙文 |
fr | 法文 |
id | 印尼文 |
it | 義大利文 |
ja | 日文 |
ko | 韓文 |
nl | 荷蘭文 |
pt | 葡萄牙文 |
ru | 俄文 |
th | 泰文 |
tr | 土耳其文 |
vi | 越南文 |
zh-cn | 簡體中文 |
zh-tw | 繁體中文 |
biggest-unit (選填)
允許 amp-date-countdown
元件根據指定的 biggest-unit
值計算時間差。例如,假設剩餘 50 天 10 小時
,如果 biggest-unit
設定為 hours
,則結果會顯示剩餘 1210 小時
。
- 支援的值:
days
、hours
、minutes
、seconds
- 預設值:
days
data-count-up (選填)
包含此屬性可反轉倒數方向,改為向上計數。這對於顯示自過去目標日期起經過的時間非常有用。若要在目標日期為過去時繼續計數,請務必包含 when-ended
屬性,並將值設為 continue
。如果目標日期在未來,amp-date-countdown
將顯示遞減 (朝向 0) 的負值。
活動
amp-date-countdown
元件公開下列事件,您可以使用 AMP on-syntax 觸發
逾時
當計時器逾時時。若要讓此動作正常運作,when-ended
必須設定為 stop
。您只能在計時器逾時時執行低信任度動作,例如 amp-animation
和 amp-video
動作。這是為了強制執行 AMP 的 UX 原則,即不允許在沒有明確使用者動作的情況下重新排列頁面內容。|
範例:示範逾時事件的用法
<h1 id="sample"> When Timer hits 0, will hide the timer itself and hide this message. </h1> <amp-animation id="hide-timeout-event" layout="nodisplay"> <script type="application/json"> { "duration": "1s", "fill": "both", "selector": "#ampdate, #sample", "keyframes": {"visibility": "hidden"} } </script> </amp-animation> <amp-date-countdown id="ampdate" end-date="2018-07-17T06:19:40+08:00" on="timeout: hide-timeout-event.start" height="400" width="400" when-ended="stop" locale="en" > <template type="amp-mustache"> <h1>Countdown Clock</h1> <div> {{dd}} : {{hh)) : {{mm}} : {{ss}} </div> </template> </amp-date-countdown>
呈現為
驗證
請參閱 AMP 驗證器規範中的 amp-date-countdown 規則。
您已閱讀此文件十幾次,但它仍然沒有涵蓋您的所有問題嗎?也許其他人有相同的感受:在 Stack Overflow 上聯繫他們。
前往 Stack Overflow 發現錯誤或缺少功能嗎?AMP 專案強烈鼓勵您的參與和貢獻!我們希望您能成為我們開源社群的持續參與者,同時也歡迎您針對您特別熱衷的問題做出一次性貢獻。
前往 GitHub