Saya cuba mencapai animasi setiap kali saya mengklik butang, ia berfungsi dengan baik pada desktop tetapi saya tidak boleh mencapai kesan yang sama pada mudah alih. Saya perlu mengklik butang dahulu, kemudian klik di tempat lain untuk menyahfokus CSS, kemudian klik butang sekali lagi untuk mendapatkan kesan animasi.
Berikut ialah coretan kod.
.btn_container { warna: #35f8ff; kedudukan: relatif; paparan: inline-block; text-align: tengah; margin: 2.5rem auto; } .prog_btn { text-transform: huruf besar; saiz fon: 1.3rem; padding: 10px 25px; indeks z: 3; warna latar belakang: telus; kursor: penunjuk; peralihan: 0.2s pelonggaran; kedudukan: relatif; margin: auto; } .btn_container .svgStroke { jawatan: mutlak; indeks-z: 1; lebar: 100%; atas: -25%; kiri: 0; } .btn_container .svgStroke path { strok-dasharray: 100; strok-dashoffset: -800; lebar lejang: 2; peralihan: semua 1s mudah masuk; pukulan: #35f8ff; } @keyframes dash { 0% { strok-dasharray: 100; lebar lejang: 2; } 50% { lebar lejang: 4; pukulan: #35f8ff; penapis: drop-shadow(0px 0px 3px #e8615a) drop-shadow(0px 0px 20px #35f8ff) drop-shadow(0px 0px 150px #35f8ff); } 100% { strok-dashoffset: 800; lebar lejang: 2; } } .prog_btn:hover+.svgStroke path { kursor: penunjuk; animasi: dash 1.5s cubic-bezier(0.25, 0.46, 0.45, 0.94); } .prog_btn:hover { saiz fon: 1.2rem; } .Tambah { paparan: inline-block; jidar kanan: 0.75rem; ketinggian: 1.5rem; lebar: 1.5rem; }
Terdapat juga pautan CodePen di sini.
Saya berharap dapat membatalkan fokus (iaitu kabur) pada penghujung animasi, tetapi ini tidak berjaya.
Berikut ialah penyelesaian yang agak kekok - coretan ini mengalih keluar animasi apabila ia tamat dan menghidupkannya semula apabila terdapat satu lagi acara permulaan sentuh. Ia menggunakan tetapan gaya dan bukannya kelas.