JavaScript でスタイルの変更を監視できますか?

Patricia Arquette
リリース: 2024-11-11 13:09:03
オリジナル
675 人が閲覧しました

Can You Monitor Style Changes in JavaScript?

イベント リスナーを使用してスタイルの変更を監視できますか?

フロントエンド開発の領域では、スタイルの変更に対応できるようになります動的に非常に貴重なものになる可能性があります。これまで、スタイルの変更を追跡する jQuery イベント リスナーを作成したいという要望がありました。ただし、この機能はネイティブでは利用できません。

代わりに、回避策が開発されました。 jQuery の内部 CSS メソッドをオーバーライドすることで、スタイルの変更が発生するたびにイベントを起動するトリガーをメソッドの最後に追加できます。

(function() {
    var ev = new $.Event('style'),
        orig = $.fn.css;
    $.fn.css = function() {
        $(this).trigger(ev);
        return orig.apply(this, arguments);
    }
})();
ログイン後にコピー

このソリューションは、イベント リスナーをスタイルの変更にバインドする方法を提供しました。

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

$('p').width(100);
$('p').css('color','red');
ログイン後にコピー

現代のテクニックとMutationObservers

それ以来、テクノロジーは進歩し、MutationObservers は、「style」属性の変更を検出するための、より現代的で標準に準拠したアプローチを提供します。現在、jQuery は必要ありません:

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'] });
ログイン後にコピー

このアプローチは、Internet Explorer 11 を含むほとんどの最新のブラウザーでサポートされています。 MutationObserver を利用すると、スタイルの変更を効果的に監視し、アプリケーションで適切に対応できます。

以上がJavaScript でスタイルの変更を監視できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート