Mengapa jQuery\'s height() dan width() Mengembalikan Nilai untuk Elemen Tersembunyi?

DDD
Lepaskan: 2024-10-29 12:37:29
asal
495 orang telah melayarinya

 Why Does jQuery's height() and width() Return Values for Hidden Elements?

jQuery: Elemen Tersembunyi dan Sifat Dimensi

Bertentangan dengan andaian biasa, elemen dengan paparan:tiada tidak selalu mengembalikan 0 untuk ketinggian jQuery () dan kaedah lebar(). Penyimpangan daripada jangkaan ini telah menjadi subjek kekeliruan yang berlarutan di kalangan pengaturcara.

Menyingkap Misteri

Percanggahan timbul daripada cara jQuery mengendalikan elemen dengan gaya paparan:tiada . Apabila lebar mengimbangi elemen ialah 0, menunjukkan bahawa ia tersembunyi dengan berkesan, jQuery cuba menentukan ketinggiannya menggunakan pengiraan dalaman:

  1. Transformasi Sementara: Ia mengubah suai elemen buat sementara waktu Sifat CSS menggunakan jQuery.swap():

    • Menetapkan kedudukan kepada "mutlak"
    • Menetapkan keterlihatan kepada "tersembunyi"
    • Tetapkan paparan kepada "sekat"
  2. Pengukuran Ketinggian: Dengan perubahan ini, ia memperoleh ketinggian menggunakan getWidthOrHeight(...).
  3. Pemulihan Harta: Akhir sekali, ia mengembalikan sifat CSS kepada nilai sebelumnya, menyembunyikan elemen itu semula dengan berkesan.

Keseluruhan proses ini berlaku dengan lancar sebelum urutan UI dikemas kini, mengekalkan keadaan tersembunyi elemen sambil mendapatkan semula dimensinya. Dengan membuat paparan: tiada unsur boleh diakses melalui height() dan width(), jQuery memastikan pengiraan yang melibatkan dimensinya boleh dilakukan tanpa mengira status keterlihatannya.

Atas ialah kandungan terperinci Mengapa jQuery\'s height() dan width() Mengembalikan Nilai untuk Elemen Tersembunyi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan