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 () {}); เรียกใช้วิธีการโหลดบนวัตถุอิมเมจที่ต้องโหลดภาพหลีกเลี่ยงการรอให้เนื้อหาไฟล์ทั้งหมดโหลด