Rumah >hujung hadapan web >tutorial css >Bagaimanakah Saya Boleh Mendapatkan Dimensi Imej Latar Belakang DIV Menggunakan jQuery?

Bagaimanakah Saya Boleh Mendapatkan Dimensi Imej Latar Belakang DIV Menggunakan jQuery?

Barbara Streisand
Barbara Streisandasal
2024-12-07 00:26:15917semak imbas

How Can I Get the Dimensions of a DIV's Background Image Using jQuery?

Menggunakan jQuery untuk Mendapatkan Dimensi Imej Latar Belakang DIV

Berusaha untuk menentukan dimensi imej latar belakang DIV dalam jQuery boleh menjadi cabaran, terutamanya apabila kaedah terbina dalam kelihatan gagal. Nasib baik, terdapat penyelesaian yang memanfaatkan kuasa objek Imej untuk mengatasi halangan ini.

Pada asalnya, adalah dipercayai bahawa baris mudah "jQuery('#myDiv').css('background-image') .tinggi();" akan mencukupi untuk mendapatkan ketinggian imej latar belakang. Walau bagaimanapun, pendekatan ini menghadapi ralat yang menunjukkan bahawa hasilnya bukan fungsi.

Kunci kejayaan terletak pada mengenali bahawa imej latar belakang disimpan sebagai URL dan bukannya imej sebenar. Untuk mengakses dimensi, kita perlu mengekstrak URL terlebih dahulu. Ini boleh dilakukan menggunakan kod berikut:

var image_url = jQuery('#myDiv').css('background-image').match(/^url\("?(.+?)"?\)$/);

Setelah URL diperoleh, kami mencipta objek Imej dan memuatkan imej. Setelah dimuatkan, objek akan mendedahkan dimensi yang diingini:

if (image_url[1]) {
  image_url = image_url[1];
  var image = new Image();

  $(image).load(function() {
    alert(image.width + 'x' + image.height);
  });

  image.src = image_url;
}

Kaedah ini memastikan imej sebenar dimuatkan dan dimensi diperoleh dengan tepat. Selain itu, ia menyokong pelbagai bentuk penetapan URL, termasuk yang mempunyai petikan atau kurungan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan Dimensi Imej Latar Belakang DIV Menggunakan jQuery?. 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