ホームページ >ウェブフロントエンド >CSSチュートリアル >jQuery を使用して CSS の変更、特に高さの変更を検出するにはどうすればよいですか?

jQuery を使用して CSS の変更、特に高さの変更を検出するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-03 11:20:02369ブラウズ

How to Detect CSS Changes, Particularly Height Changes, Using jQuery?

JQuery を使用して CSS の変更を検出する方法

JQuery には、CSS 属性の変更を検出するための組み込みイベントがありません。ただし、次のアプローチを使用して独自のモニタリングを作成することもできます。

継続的な DOM モニタリング (最初の方法):

DOM を定期的に (たとえば、500 ミリ秒ごとに) ポーリングして、現在の CSS 属性値を以前の値と比較します。異なる場合は、イベントをトリガーします。

例:

<code class="javascript">var $element = $("#elementId");
var lastHeight = $("#elementId").css('height');

function checkForChanges() {
    if ($element.css('height') != lastHeight) {
        alert('xxx');
        lastHeight = $element.css('height');
    }
    setTimeout(checkForChanges, 500);
}

checkForChanges();</code>

手動イベント トリガー (2 番目の方法):

カスタム イベント ハンドラーをターゲット要素にバインドし、要素の CSS を変更するたびにこのイベントを手動でトリガーします。

例:

<code class="javascript">$('#mainContent').bind('heightChange', function(){
    alert('xxx');
});

$("#btnSample1").click(function() {
    $("#mainContent").css('height', '400px');
    $("#mainContent").trigger('heightChange');
});</code>

高さの変更を具体的に判断する (最初の問題の解決策):

#mainContent div の高さの変更を検出する特定のケースでは、次のコードで 2 番目のアプローチを使用します:

<code class="javascript">$('#mainContent').bind('heightChange', function () {
    $("#separator").css('height', $("#mainContent").height());
});</code>

#mainContent div の高さを変更する前に、必ずイベント ハンドラーをバインドしてください。

以上がjQuery を使用して CSS の変更、特に高さの変更を検出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。