http://photo.163.com/shixiaojian089/train/28002 هذا ألبوم صور من Netease. أريد أن أجربها بعد رؤيتها.
في طريقة الإنتاج الخاصة بي ، أحتاج إلى الحصول على عرض كل صورة ، لذلك استخدمت بشكل طبيعي طريقة العرض () من JQ. لا توجد مشكلة كبيرة في الركض تحت FF و IE ، ولكن عندما يتعلق الأمر بالكروم ، هناك مشكلة.
استخدم تنبيهًا لاستكشاف الأخطاء وإصلاحها ووجدت أن القيم التي تم الحصول عليها بواسطة طريقة العرض في Chrome هي 0. في هذه الحالة ، أعتقد أن الصورة لم يتم تحميلها على الإطلاق عند تشغيل البرنامج النصي هنا. يجب أن تكون المشكلة مع $ (function () {}) ؛ لأن هذه الطريقة تتطلب فقط تشغيل DOM بعد التحميل. ثم قم بتغييره للتنفيذ تحت Onload ، ولا بأس. ومع ذلك ، من الواضح أن هذا ليس حلاً جيدًا. بعد كل شيء ، عليك الانتظار حتى يتم تحميل جميع محتويات الملف بأكمله قبل تشغيل البرنامج النصي.
بعد البحث عبر الإنترنت ، وجدت أن هذا الرجل //www.vevb.com/article/50402.htm واجه أيضًا نفس المشكلة. يوجد حل أسفل تعليقه ، والذي يمكن استخدامه كمرجع:
استخدمه حيث تريد الحصول على عرض وارتفاع الصورة
نسخة الكود كما يلي:
$ img.load (function () {
var img_h = $ img.height () ؛
var img_w = $ img.width () ؛
}
بهذه الطريقة ، لا يزال بإمكانك استخدام $ (function () {}) ؛ استدعاء طريقة التحميل على كائن الصورة حيث تحتاج الصورة إلى تحميلها ، وتجنب انتظار تحميل محتوى الملف بالكامل.