Rumah  >  Artikel  >  hujung hadapan web  >  Mengapakah `jQuery.height()` Mengembalikan Nilai untuk Elemen Tersembunyi?

Mengapakah `jQuery.height()` Mengembalikan Nilai untuk Elemen Tersembunyi?

Susan Sarandon
Susan Sarandonasal
2024-10-28 05:23:02710semak imbas

Why Does `jQuery.height()` Return a Value for a Hidden Element?

jQuery: height()/width() dan "display:none"

Dalam senario ini, elemen dengan ID "sasaran " mempunyai sifat paparannya ditetapkan kepada "tiada" melalui CSS. Walau bagaimanapun, apabila menyemak ketinggiannya menggunakan $("#target").height(), nilai bukan sifar diperoleh.

Tingkah laku ini berpunca daripada pengendalian dalaman jQuery terhadap elemen tersembunyi apabila mengakses dimensinya. Jika elemen mempunyai offsetWidth 0 (dianggap "tersembunyi" oleh jQuery), perpustakaan cuba menentukan ketinggiannya.

Untuk mencapai ini, jQuery menggunakan sifat berikut buat sementara waktu pada elemen:

  • kedudukan: "mutlak"
  • keterlihatan: "tersembunyi"
  • paparan: "sekat"

Ia kemudian mendapatkan semula ketinggian menggunakangetWidthOrHeight(... ), yang menambah jidar/lapik seperti yang diperlukan dan memulihkan sifat asal.

Pada asasnya, jQuery secara diam-diam memaparkan elemen خارج حدود تدفق المستند, memperoleh ketinggiannya dan kemudian menyembunyikannya semula. Ini berlaku sebelum urutan UI boleh mengemas kini, jadi pengguna kekal tidak mengetahui proses itu.

Mekanisme ini membolehkan .height()/.width() berfungsi walaupun pada elemen tersembunyi, dengan syarat elemen induknya boleh dilihat. Oleh itu, anda boleh menggunakan .height()/.width() tanpa melakukan urutan show/hide secara manual, kerana ia dikendalikan secara dalaman oleh kaedah ini.

Atas ialah kandungan terperinci Mengapakah `jQuery.height()` Mengembalikan Nilai untuk Elemen Tersembunyi?. 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