Tukar CSS :hover Properties Secara Dinamik dengan JavaScript
Adalah intuitif untuk berfikir kita boleh memanipulasi sifat CSS :hover dengan JavaScript melalui sifat biasa objek. Walau bagaimanapun, :hover ialah kelas pseudo yang menggunakan gaya pada elemen hanya apabila tetikus melayang di atasnya. Ini bermakna ia tidak boleh diakses secara langsung melalui objek sifat.
Untuk memanipulasi sifat :hover dengan JavaScript, seseorang mesti melangkaui objek sifat dan berusaha untuk memanipulasi lembaran gaya itu sendiri. Ini boleh dicapai dalam beberapa cara, masing-masing dengan kebaikan dan keburukannya:
Pengubahsuaian CSS Langsung:
document.getElementsByTagName("style")[0].innerHTML = 'table td:hover{ background-color: #00ff00 }';
Walaupun pengubahsuaian langsung boleh dilakukan dengan pantas, ia menimpa lembaran gaya sedia ada, yang berpotensi membawa kepada akibat yang tidak dijangka.
Mencipta yang Baharu Lembaran gaya:
var css = 'table td:hover{ background-color: #00ff00 }'; var style = document.createElement('style'); style.type = 'text/css'; style.appendChild(document.createTextNode(css)); document.getElementsByTagName('head')[0].appendChild(style);
Kaedah ini membenarkan perubahan penggayaan yang lebih terkawal dengan mencipta helaian gaya baharu yang hanya menyertakan pengubahsuaian :hover yang dikehendaki. Walau bagaimanapun, ia juga membawa overhed untuk mengekalkan berbilang lembaran gaya.
Melampirkan Peraturan Baharu pada Lembaran Gaya Semasa:
if (style.styleSheet) { style.styleSheet.cssText += 'table td:hover{ background-color: #00ff00 }'; } else { style.appendChild(document.createTextNode('table td:hover{ background-color: #00ff00 }')); }
Pendekatan ini memanjangkan lembaran gaya semasa dengan menambahkan peraturan baru :hover. Ia menawarkan keseimbangan antara pengubahsuaian langsung dan mencipta helaian gaya baharu.
Akhirnya, kaedah yang dipilih bergantung pada kerumitan perubahan yang diperlukan dan keseluruhan seni bina tapak web. Mengubah suai sifat :hover secara dinamik dengan JavaScript memberikan fleksibiliti dalam mencipta kesan interaktif.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Tukar Secara Dinamik CSS :hover Properties dengan JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!