Butang pada mudah alih kekal fokus atau aktif, menyebabkan masalah dengan animasi CSS
P粉043295337
2023-08-28 15:14:37
<p>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. </p>
<p>Berikut ialah coretan kod. </p>
<p>
<pre class="brush:css;toolbar:false;">.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;
}</pre>
<pre class="brush:html;toolbar:false;"><div class="btn_container">
<div class="prog_btn">
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="add" >
<laluan
stroke-linecap="bulat"
stroke-linejoin="pusingan"
d="M12 4.5v15m7.5-7.5j-15"
></path>
</svg>
</div>
<svg class="svgStroke" width="222" height="65" viewBox="0 0 222 85" fill="none" xmlns="http://www.w3.org/2000/svg">
<laluan
d="M205 84H21L1 63.4941V18.5765L21 1H205L221 18.5765V63.4941L205 84Z"
stroke="putih"
lejang-lebar="2"
></path>
</svg>
</div></pre>
</p>
<p>Terdapat juga pautan CodePen di sini. </p>
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.