amp-date-countdown
說明
顯示倒數至指定日期的序列。
必要指令碼
<script async custom-element="amp-date-countdown" src="https://cdn.ampproject.org/v0/amp-date-countdown-1.0.js"></script>
<script async custom-element="amp-date-countdown" src="https://cdn.ampproject.org/v0/amp-date-countdown-1.0.js"></script> <link rel="stylesheet" href="https://cdn.ampproject.org/v0/amp-date-countdown-1.0.css">
支援的版面配置
用法
顯示倒數序列,以指示排定事件發生前的剩餘時間。
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' |
從 0.1 版本遷移
實驗性的 1.0
版本 amp-date-countdown
使用屬性名稱 count-up
而非 0.1
中的 data-count-up
,以支援「向上計數」功能。有關更多詳細資訊,請參閱下方「屬性」下的 count-up
區段。
在有效的 AMP 文件之外獨立使用
Bento 允許您在非 AMP 頁面中使用 AMP 元件,而無需完全採用有效的 AMP。您可以採用這些元件,並將它們放置在不支援 AMP 的框架和 CMS 的實作中。請參閱我們的指南在非 AMP 頁面中使用 AMP 元件以了解更多資訊。
若要尋找 amp-date-countdown
的獨立版本,請參閱bento-date-countdown
。
屬性
您必須至少指定下列其中一個必要屬性: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
count-up (選填)
包含此屬性以反轉倒數方向,改為向上計數。這對於顯示自過去目標日期以來經過的時間非常有用。若要在目標日期過去後繼續倒數,請務必包含 when-ended
屬性並將值設為 continue
。如果目標日期在未來,amp-date-countdown
將顯示遞減 (朝向 0) 的負值。
0.1
不同,後者使用 data-count-up
屬性來切換此功能。此功能的行為與 0.1
相同。活動
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>
呈現為
您已閱讀此文件十幾次,但它並未真正涵蓋您的所有問題?也許其他人也有相同的感受:在 Stack Overflow 上與他們聯繫。
前往 Stack Overflow 發現錯誤或缺少功能?AMP 專案強烈鼓勵您的參與和貢獻!我們希望您能成為我們開放原始碼社群的持續參與者,但我們也歡迎您針對您特別熱衷的問題做出一次性的貢獻。
前往 GitHub