jQuery: height()/width() および "display:none"
このシナリオでは、ID が「target」の要素" は、CSS によって表示プロパティが "none" に設定されています。ただし、$("#target").height() を使用して高さをチェックすると、ゼロ以外の値が取得されます。
この動作は、隠し要素の寸法にアクセスするときの jQuery の内部処理に起因します。要素の offsetWidth が 0 (jQuery によって「非表示」とみなされる) である場合、ライブラリはその高さを決定しようとします。
これを実現するために、jQuery は一時的に次のプロパティを要素に適用します。
次に、getWidthOrHeight(... を使用して高さを取得します。 )、必要に応じてボーダー/パディングを追加し、元のプロパティを復元します。
基本的に、jQuery は要素を慎重に表示し、その高さを取得して、再度非表示にします。これは UI スレッドが更新される前に発生するため、ユーザーはプロセスを認識しません。
このメカニズムにより、親要素が表示されていれば、非表示の要素でも .height()/.width() が機能できるようになります。したがって、.height()/.width() は、これらのメソッドによって内部的に処理されるため、表示/非表示シーケンスを手動で実行することなく呼び出すことができます。
以上が`jQuery.height()` が非表示要素の値を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。