Rumah >hujung hadapan web >tutorial css >Bolehkah JavaScript mensimulasikan kesan CSS :hover dengan pasti?

Bolehkah JavaScript mensimulasikan kesan CSS :hover dengan pasti?

Barbara Streisand
Barbara Streisandasal
2024-12-17 13:27:17299semak imbas

Can JavaScript reliably simulate CSS :hover effects?

Mensimulasikan Mouseover dalam JavaScript: Cabaran dengan CSS :hover

Mencuba untuk mensimulasikan acara mouseover dalam JavaScript untuk mengaktifkan CSS ":hover" harta benda boleh terbukti mencabar, seperti yang ditunjukkan oleh yang berikut pertanyaan:

Soalan:

Saya telah cuba mensimulasikan acara alih tetikus menggunakan pendengar alih tetikus dalam Chrome Semasa pendengar dicetuskan, perisytiharan :hover kekal tidak aktif. Saya cuba menambah kelas "legar" secara manual, tetapi ia gagal untuk mengubah penampilan elemen Adakah mungkin untuk dicapai ini?

Jawapan:

Malangnya, kaedah ini tidak boleh dilakukan. Tetikus bukan acara yang dipercayai.

Acara yang dijana oleh ejen pengguna (sama ada akibat interaksi pengguna atau akibat langsung daripada perubahan DOM) ialah peristiwa yang dijana oleh skrip dengan kaedah DocumentEvent.createEvent("Event"), Acara A acara yang dipercayai yang mempunyai keistimewaan yang tidak diberikan kepada acara yang diubah suai dengan kaedah .initEvent() atau acara yang dihantar dengan kaedah EventTarget.dispatchEvent(). Atribut isTrusted bagi peristiwa yang dipercayai mempunyai nilai benar, dan atribut isTrusted bagi peristiwa yang tidak dipercayai mempunyai nilai palsu.

Kebanyakan acara yang tidak dipercayai tidak mencetuskan tindakan lalai, kecuali acara klik atau DOMActivate.

Jadi anda perlu menambah dan mengalih keluar kelas secara manual dalam acara alih tetikus/keluar tetikus.

Atas ialah kandungan terperinci Bolehkah JavaScript mensimulasikan kesan CSS :hover dengan pasti?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn