1. ホーム
  2. javascript

[解決済み] Jqueryを使ったCSSプロパティ変更時のイベント検出

2023-03-18 15:02:13

質問

ある要素のCSSプロパティが変更されたかどうか(noneかblockかinline-blockか...)を検出する方法はありますか? ない場合、何かプラグインはありますか?ありがとうございます。

どのように解決するには?

<ブロッククオート

注意事項

変異イベント は、この投稿が書かれた後に非推奨となり、すべてのブラウザでサポートされていない可能性があります。代わりに 変異オブザーバ .

はい、できます。DOM L2 Events モジュールで定義されている 変異イベント が定義されています。 DOMAttrModified が必要です。これらは広く実装されているわけではありませんが、少なくとも Gecko と Opera ブラウザではサポートされています。

これらの行に沿った何かを試してみてください。

document.documentElement.addEventListener('DOMAttrModified', function(e){
  if (e.attrName === 'style') {
    console.log('prevValue: ' + e.prevValue, 'newValue: ' + e.newValue);
  }
}, false);

document.documentElement.style.display = 'block';

また IE の "propertychange" イベントを利用してみてください。 の代わりとして DOMAttrModified . これにより style の変更を確実に検出できるはずです。