Rumah >hujung hadapan web >tutorial js >Bolehkah Anda Memantau Perubahan Gaya dalam JavaScript?

Bolehkah Anda Memantau Perubahan Gaya dalam JavaScript?

Patricia Arquette
Patricia Arquetteasal
2024-11-11 13:09:03742semak imbas

Can You Monitor Style Changes in JavaScript?

Bolehkah Anda Memantau Perubahan Gaya dengan Pendengar Acara?

Dalam bidang pembangunan bahagian hadapan, dapat bertindak balas terhadap perubahan gaya secara dinamik boleh menjadi tidak ternilai. Pada masa lalu, terdapat keinginan untuk mencipta pendengar acara jQuery yang menjejaki sebarang perubahan gaya. Walau bagaimanapun, ciri ini belum tersedia secara asli.

Sebaliknya, penyelesaian telah dibangunkan. Dengan mengatasi kaedah CSS dalaman jQuery, pencetus boleh ditambah pada penghujung kaedah untuk melancarkan acara apabila perubahan gaya berlaku:

(function() {
    var ev = new $.Event('style'),
        orig = $.fn.css;
    $.fn.css = function() {
        $(this).trigger(ev);
        return orig.apply(this, arguments);
    }
})();

Penyelesaian ini menyediakan cara untuk mengikat pendengar acara kepada perubahan gaya:

$('p').bind('style', function(e) {
    console.log( $(this).attr('style') );
});

$('p').width(100);
$('p').css('color','red');

Teknik Moden dengan MutationObservers

Sejak itu, teknologi telah berkembang maju, dan MutationObservers menyediakan pendekatan yang lebih moden dan mematuhi standard untuk mengesan perubahan dalam atribut 'gaya'. Tiada jQuery diperlukan sekarang:

var observer = new MutationObserver(function(mutations) {
    mutations.forEach(function(mutationRecord) {
        console.log('style changed!');
    });    
});

var target = document.getElementById('myId');
observer.observe(target, { attributes : true, attributeFilter : ['style'] });

Pendekatan ini disokong dalam kebanyakan penyemak imbas moden, termasuk Internet Explorer 11 . Dengan menggunakan MutationObserver, anda boleh memantau perubahan gaya dengan berkesan dan bertindak balas dengan sewajarnya dalam aplikasi anda.

Atas ialah kandungan terperinci Bolehkah Anda Memantau Perubahan Gaya dalam JavaScript?. 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