Rumah >hujung hadapan web >tutorial css >Mengapa Tisu Tetikus JavaScript Sentiasa Mencetuskan CSS :hover?
Sesetengah pembangun telah menghadapi masalah apabila cuba mensimulasikan fungsi alih tetikus dalam tulen JavaScript tidak mencetuskan pengisytiharan tuding CSS, walaupun mencetuskan pendengar alih tetikus. Artikel ini berusaha untuk menangani cabaran ini dan meneroka penyelesaian yang berpotensi.
Inti masalah terletak konsep tahap kepercayaan acara dalam penyemak imbas. Peristiwa yang dicetuskan oleh interaksi pengguna atau perubahan pada DOM dianggap peristiwa yang dipercayai dan mempunyai keistimewaan tertentu. Sebaliknya, peristiwa yang dijana oleh kod JavaScript melalui kaedah DocumentEvent.createEvent atau EventTarget.dispatchEvent dianggap sebagai peristiwa yang tidak dipercayai.
Ketiadaan gaya "legar" yang mencetuskan untuk acara yang tidak dipercayai adalah disebabkan oleh sekatan keselamatan. Penyemak imbas mengehadkan tindakan lalai yang dicetuskan oleh peristiwa yang tidak dipercayai, kecuali tindakan seperti klik atau DOMActivate. Ini adalah langkah yang disengajakan untuk menghalang kod hasad daripada mensimulasikan interaksi pengguna dan berpotensi menjejaskan keselamatan.
Untuk mensimulasikan kesan alih tetikus, penyelesaiannya terletak pada menambah dan mengalih keluar CSS secara manual kelas apabila peristiwa alih tetikus dan keluar tetikus dikesan. Pendekatan ini berkesan mencetuskan pengisytiharan CSS ":hover" tanpa bergantung pada peristiwa yang tidak dipercayai. Berikut ialah contoh pelaksanaan:
// Simulate mouseover effect element.addEventListener("mouseover", () => { element.classList.add("hover"); }); // Simulate mouseout effect element.addEventListener("mouseout", () => { element.classList.remove("hover"); });
Dengan melaksanakan penyelesaian ini, anda boleh mensimulasikan acara alih tetikus dan mencetuskan gaya tuding CSS yang diingini tanpa melanggar sekatan keselamatan penyemak imbas.
Atas ialah kandungan terperinci Mengapa Tisu Tetikus JavaScript Sentiasa Mencetuskan CSS :hover?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!