Tindakan dan peristiwa
Atribut on
digunakan untuk menginstal pengurus (handler) peristiwa pada elemen. Peristiwa-peristiwa yang didukung bergantung pada elemen.
Nilai untuk sintaksis adalah bahasa yang spesifik untuk domain sederhana dari formulir tersebut:
eventName:targetId[.methodName[(arg1=value, arg2=value)]]
Lihat tabel di bawah ini untuk mengetahui deskripsi setiap bagian sintaks.
Sintaks | Diperlukan? | Deskripsi |
---|---|---|
eventName | ya | Ini adalah nama peristiwa yang diekspos elemen. |
targetId | ya | Ini adalah ID DOM untuk elemen tersebut, atau target khusus yang telah ditentukan sebelumnya yang ingin Anda tindak lanjuti sebagai tanggapan atas peristiwa tersebut. Di dalam contoh berikut ini, targetId adalah ID DOM dari target amp-lightbox , photo-slides . <amp-lightbox id = "photo-slides"> </amp-lightbox> <button on = "tap: photo-slides"> Tampilkan Gambar</button> |
methodName | tidak | Ini untuk elemen dengan tindakan default (standar). Ini adalah metode yang diekspos elemen target (dirujuk dengan AMP mempunyai konsep tentang tindakan default yang dapat diterapkan elemen-elemen. Jadi, saat meniadakan |
arg=value | tidak | Beberapa tindakan, jika didokumentasikan, mungkin menerima argumen. Argumen ditetapkan di dalam kurung di dalam notasi key=value . Nilai-nilai yang diterima adalah:
|
Menangani beberapa peristiwa
Anda dapat mendengarkan beberapa peristiwa pada suatu elemen dengan memisahkan peristiwa dengan tanda titik koma ;
.
Contoh: on="submit-success:lightbox1;submit-error:lightbox2"
Beberapa tindakan untuk satu peristiwa
Anda dapat mengeksekusi beberapa tindakan dalam urutan untuk peristiwa yang sama dengan memisahkan tindakan-tindakan tersebut menggunakan koma ','.
Contoh: on="tap:target1.actionA,target2.actionB"
Peristiwa dan tindakan yang ditentukan secara global
AMP menentukan sebuah peristiwa tap
secara global bahwa Anda dapat mendengarkan elemen HTML apa pun (termasuk elemen AMP).
AMP juga menentukan tindakan hide
, show
, dan toggleVisibility
secara global bahwa Anda dapat memicu elemen HTML apa pun.
Sebuah elemen hanya dapat diperlihatkan jika sebelumnya disembunyikan dengan tindakan hide
atau toggleVisibility
, atau dengan menggunakan atribut hidden
. Tindakan show
tidak mendukung elemen yang disembunyikan dengan display:none
CSS atau layout=nodisplay
AMP.
Contohnya, yang berikut ini mungkin dilakukan di AMP:
<div id="warning-message">Warning...</div> <button on="tap:warning-message.hide">Cool, thanks!</button>
Peristiwa yang khusus untuk elemen tertentu
* - semua elemen
Peristiwa | Deskripsi |
---|---|
tap | Dipicu ketika elemen diklik/diketuk. |
Elemen input
Peristiwa | Deskripsi | Elemen | Data |
---|---|---|---|
change | Dipicu ketika nilai elemen berubah dan diterapkan. Properti data mencerminkannya dalam HTMLInputElement dan HTMLSelectElement. | input | event.min |
input[type="radio"] ,input[type="checkbox"]
| event.checked | ||
select | event.min | ||
input-debounced | Dipicu ketika nilai elemen berubah. Ini serupa dengan peristiwa change standar, namun hanya dipicu ketika telah lewat 300 milidetik sejak nilai input berhenti berubah. | Elemen yang memicu peristiwa input . | Sama dengan data peristiwa change . |
input-throttled | Dipicu ketika nilai elemen berubah. Ini serupa dengan peristiwa change standar, namun dipercepat untuk dipicu secara maksimal setiap 100 milidetik sementara nilai input berubah. | Elemen yang memicu peristiwa input . | Sama dengan data peristiwa change . |
amp-accordion > bagian
Peristiwa | Deskripsi | Data |
---|---|---|
expand | Dipicu ketika bagian akordeon meluas. | Tidak ada. |
collapse | Dipicu ketika bagian akordeon menciut. | Tidak ada. |
amp-carousel[type="slides"]
Peristiwa | Deskripsi | Data |
---|---|---|
slideChange | Dipicu ketika slide korsel (carousel) yang sedang aktif berubah. | // Slide number. |
amp-lightbox
Peristiwa | Deskripsi | Data |
---|---|---|
lightboxOpen | Dipicu ketika lightbox (bingkai terang) terlihat sepenuhnya. | Tidak ada |
lightboxClose | Dipicu ketika lightbox (bingkai terang) tertutup sepenuhnya. | Tidak ada |
amp-list
Peristiwa | Deskripsi | Data |
---|---|---|
changeToLayoutContainer | Perbarui tata letak amp-list ke layout="CONTAINTER" untuk memungkinkan pengubahan ukuran dinamis. | |
fetch-error (kepercayaan rendah) | Dipicu saat pengambilan data gagal. | Tidak ada |
amp-selector
Peristiwa | Deskripsi | Data |
---|---|---|
select | Dipicu ketika suatu opsi dipilih atau tidak jadi dipilih. | // Target element's "option" attribute value. |
amp-sidebar
Peristiwa | Deskripsi | Data |
---|---|---|
sidebarOpen | Dipicu ketika bilah samping sepenuhnya terbuka setelah transisi berakhir. | Tidak ada |
sidebarClose | Dipicu ketika bilah samping sepenuhnya tertutup setelah transisi berakhir. | Tidak ada |
amp-state
Peristiwa | Deskripsi | Data |
---|---|---|
fetch-error (kepercayaan rendah) | Dipicu saat pengambilan data gagal. | Tidak ada |
amp-video, amp-youtube
Peristiwa | Deskripsi | Data |
---|---|---|
firstPlay (kepercayaan rendah) | Dipicu saat video diputar pertama kali oleh pengguna. Pada video yang diputar otomatis, ini dipicu begitu pengguna berinteraksi dengan video. Peristiwa ini mempunyai tingkat kepercayaan rendah (low-trust), artinya tidak dapat memicu sebagian besar tindakan; hanya tindakan yang bisa dengan kepercayaan rendah yang dapat dijalankan, seperti tindakan amp-animation . | |
timeUpdate (kepercayaan rendah) | Dipicu ketika posisi pemutaran sebuah video telah berubah. Frekuensi peristiwa dikendalikan oleh AMP dan saat berlangsung diatur pada interval 1 detik. Peristiwa ini mempunyai tingkat kepercayaan rendah (low-trust), artinya tidak dapat memicu sebagian besar tindakan; hanya tindakan yang bisa dengan kepercayaan rendah yang dapat dijalankan, seperti tindakan amp-animation . | {time, percent} time mengindikasikan waktu saat berlangsung dalam detik, percent adalah angka di antara 0 dan 1 dan mengindikasikan posisi saat berlangsung sebagai persentase total waktu. |
formulir
Peristiwa | Deskripsi | Data |
---|---|---|
submit | Fired when the form is submitted. | |
submit-success | Fired when the form submission response is success. | // Response JSON. |
submit-error | Dipicu ketika respons pengiriman formulir mengalami eror. | // Response JSON. |
valid | Dipicu ketika formulir valid. | |
invalid | Dipicu ketika formulir tidak valid. |
Tindakan yang khusus untuk elemen tertentu
* (semua elemen)
Tindakan | Deskripsi |
---|---|
hide | Menyembunyikan elemen target. |
show | Memperlihatkan elemen target. Jika sebuah elemen autofocus menjadi terlihat, maka elemen tersebut akan mendapatkan fokus. |
toggleVisibility | Mengalihkan atau mengubah visibilitas elemen target. Jika sebuah element autofocus menjadi terlihat, maka elemen tersebut akan mendapatkan fokus. |
toggleClass(class=STRING, force=BOOLEAN) | Mengalihkan kelas elemen target. force bersifat opsional, dan jika ditentukan akan memastikan kelas itu hanya akan ditambahkan, tetapi tidak dihapus jika diatur sebagai true , dan hanya dihapus, tetapi tidak ditambahkan jika diatur sebagai false . |
scrollTo(duration=INTEGER, position=STRING) | Menggulir elemen ke tampilan dengan animasi yang halus.duration adalah opsional. Menentukan panjang animasi dalam milidetik. Jika tidak ditentukan, jumlah yang relatif terhadap perbedaan gulir di bawah atau setara dengan 500 milidetik akan digunakan.position adalah opsional. Salah satu top , center atau bottom (top default). Menentukan posisi elemen relatif terhadap viewport setelah menggulir.Sebagai praktik terbaik aksesibilitas, sandingkan ini dengan panggilan ke focus() untuk berfokus pada elemen yang sedang dituju. |
focus | Membuat elemen target mendapatkan fokus. Untuk menghilangkan fokus, focus pada elemen lain (biasanya elemen induk). Kami sangat menyarankan agar tidak menghilangkan fokus dengan berfokus pada body /documentElement demi keperluan aksesibilitas. |
amp-audio
Tindakan | Deskripsi |
---|---|
play | Memutar audio. Tidak berfungsi (no-op) jika elemen <amp-audio> adalah turunan dari <amp-story> . |
pause | Menjeda audio. Tidak berfungsi (no-op) jika elemen <amp-audio> adalah turunan dari <amp-story> . |
amp-bodymovin-animation
Tindakan | Deskripsi |
---|---|
play | Memutar animasi. |
pause | Menjeda animasi. |
stop | Menghentikan animasi. |
seekTo(time=INTEGER) | Mengatur currentTime animasi pada nilai yang ditentukan dan menjeda animasi. |
seekTo(percent=[0,1]) | Menggunakan nilai persentase yang diberikan untuk menentukan currentTime animasi pada nilai yang ditentukan dan menjeda animasi. |
amp-accordion
Tindakan | Deskripsi |
---|---|
toggle(section=STRING) | Mengalihkan status expanded dan collapsed bagian amp-accordion . Jika dipanggil tanpa argumen, maka akan mengalihkan semua bagian akordeon. Picu pada bagian yang spesifik dengan menyediakan ID bagian: on="tap:myAccordion.toggle(section='section-id')" . |
expand(section=STRING) | Memperluas bagian-bagian akordeon. Jika sebuah bagian telah diperluas, maka akan tetap luas. Jika dipanggil tanpa argumen, maka akan memperluas semua bagian akordeon. Picu pada bagian yang spesifik dengan menyediakan ID bagian: on="tap:myAccordion.expand(section='section-id')" . |
collapse(section=STRING) | Menciutkan bagian-bagian akordeon. Jika sebuah bagian telah ciut, maka akan tetap ciut. Jika dipanggil tanpa argumen, maka akan menciutkan semua bagian akordeon. Picu pada bagian yang spesifik dengan menyediakan ID bagian: on="tap:myAccordion.collapse(section='section-id')" . |
amp-carousel[type="slides"]
Tindakan | Deskripsi |
---|---|
goToSlide(index=INTEGER) | Memajukan korsel (carousel) ke indeks slide yang ditentukan. |
toggleAutoplay(toggleOn=true|false) | Mengalihkan status putar otomatis korsel. toggleOn bersifat opsional. |
amp-image-lightbox
Tindakan | Deskripsi |
---|---|
open (default) | Membuka lightbox (bingkai terang) gambar, di mana gambar sumber menjadi pemicu tindakan. |
amp-lightbox
Tindakan | Deskripsi |
---|---|
open (default) | Membuka lightbox (bingkai terang). |
close | Menutup lightbox (bingkai terang). |
amp-lightbox-gallery
Tindakan | Deskripsi |
---|---|
open | Membuka galeri lightbox. Dapat dipicu dengan mengetuk elemen lain jika Anda menentukan ID gambar: `on="tap:amp-lightbox-gallery.open(id='image-id')"`. |
amp-list
Tindakan | Deskripsi |
---|---|
refresh | Menyegarkan data dari src dan merender ulang daftar. |
amp-live-list
Tindakan | Deskripsi |
---|---|
update (default) | Memperbarui item DOM untuk memperlihatkan konten yang telah diperbarui. |
amp-selector
Tindakan | Deskripsi |
---|---|
clear | Mengosongkan semua pilihan dari amp-selector yang telah ditentukan. |
selectUp(delta=INTEGER) | Menaikkan pilihan sesuai nilai `delta`. `delta` default ditetapkan pada -1. Jika tidak ada opsi yang dipilih, status yang dipilih akan menjadi nilai opsi terakhir. |
selectDown(delta=INTEGER) | Menurunkan pilihan sesuai nilai `delta`. `delta` default ditetapkan pada 1. Jika tidak ada opsi yang dipilih, status yang dipilih akan menjadi nilai opsi pertama. |
toggle(index=INTEGER, value=BOOLEAN) | Mengalihkan penerapan `selected` (terpilih). Jika atribut untuk memilih tidak ada, tindakan ini akan menambahkannya. Jika atribut untuk memilih ada, tindakan ini akan menghapusnya. Anda dapat memaksa dan mempertahankan serta menambahkan atau menghapus dengan menyertakan nilai Boolean di dalam argumen `value`. Sebuah nilai `true` akan memaksa untuk menambahkan atribut `selected` dan tidak akan menghapusnya jika memang sudah ada. Sebuah nilai `false` akan menghapus atribut tersebut, tetapi tidak akan menambahkannya jika tidak ada. |
amp-sidebar
Tindakan | Deskripsi |
---|---|
open (default) | Membuka bilah samping (sidebar). |
close | Menutup bilah samping (sidebar). |
toggle | Mengalihkan status bilah samping (bilah samping). |
amp-state
Tindakan | Deskripsi |
---|---|
refresh | Mengambil kembali data di atribut `src` dengan mengabaikan cache browser. |
amp-user-notification
Tindakan | Deskripsi |
---|---|
dismiss (default) | Menyembunyikan elemen notifikasi pengguna yang menjadi referensi. |
Elemen video
Tindakan di bawah ini didukung di dalam elemen video AMP berikut ini: amp-video
, amp-youtube
, amp-3q-player
, amp-brid-player
, amp-dailymotion
, amp-delight-player
, amp-ima-video
.
Tindakan | Deskripsi |
---|---|
play | Memutar video. |
pause | Menjeda video. |
mute | Membisukan video. |
unmute | Menyuarakan video. |
fullscreencenter | Mengubah video ke layar penuh. |
formulir
Tindakan | Deskripsi |
---|---|
clear | Mengosongkan nilai apa pun yang ada di dalam input formulir. |
submit | Mengirimkan formulir. |
Target spesial
Yang berikut ini adalah target yang disediakan oleh sistem AMP yang mempunyai persyaratan spesial:
Target: AMP
Target AMP
disediakan oleh runtime AMP dan menerapkan tindakan tingkat tinggi yang berlaku pada seluruh dokumen.
Tindakan | Deskripsi |
---|---|
navigateTo(url=STRING, target=STRING, opener=BOOLEAN) | Menavigasikan jendela saat ini ke URL yang diberikan, ke target opsional yang telah ditentukan jika diberikan (saat ini hanya mendukung Peringatan: Menggunakan tautan normal |
closeOrNavigateTo(url=STRING, target=STRING, opener=BOOLEAN) | Mencoba menutup jendela jika diizinkan, jika tidak, akan bernavigasi mirip Tindakan Peringatan: Menggunakan tautan normal |
goBack | Bernavigasi kembali dalam riwayat. |
print | Membuka Dialog Cetak (Print Dialog) untuk mencetak halaman yang sedang ditempati. |
scrollTo(id=STRING, duration=INTEGER, position=STRING) | Bergulir ke ID elemen yang disediakan pada halaman yang sedang ditempati. |
optoutOfCid | Menolak pembuatan ID Klien untuk semua cakupan. |
setState({foo: 'bar'}) 1
| Memerlukan amp-bind. Menggabungkan objek secara literal ke dalam status yang dapat diikat. |
pushState({foo: 'bar'}) 1
| Memerlukan amp-bind. Menggabungkan objek secara literal ke dalam status yang dapat diikat dan mendorong entri baru ke tumpukan riwayat browser. Memunculkan entri akan memulihkan nilai-nilai variabel sebelumnya (di dalam contoh ini, |
1Jika digunakan dengan beberapa tindakan, tindakan selanjutnya akan menunggu setState()
atau pushState()
selesai terlebih dahulu sebelum pemanggilan. Hanya satu di antara setState()
atau pushState()
yang diizinkan per peristiwa.
Target: amp-access
Target amp-access
disediakan oleh komponen amp-access.
Target amp-access
menjadi spesial karena alasan-alasan berikut ini:
- Anda tidak dapat memberikan ID sesuka hati untuk target ini. Targetnya selalu
amp-access
. - Tindakan untuk
amp-access
bersifat dinamis sesuai dengan struktur Konfigurasi Akses AMP.
Lihat detail tentang menggunakan target amp-access
.