ฉันกำลังเขียนไซต์โดยใช้ jquery ที่เรียกซ้ำ ๆ$(window).width()
และ$(window).height()
เพื่อกำหนดตำแหน่งและขนาดองค์ประกอบตามขนาดวิวพอร์ต
ในการแก้ไขปัญหาฉันพบว่าฉันได้รับรายงานขนาดวิวพอร์ตที่แตกต่างกันเล็กน้อยในการเรียกซ้ำไปยังฟังก์ชัน jquery ด้านบนเมื่อไม่ได้ปรับขนาดวิวพอร์ต
สงสัยว่ามีกรณีพิเศษใดที่ใคร ๆ ก็รู้ว่าเมื่อเกิดเหตุการณ์นี้ขึ้นหรือเป็นอย่างนั้น ความแตกต่างของขนาดที่รายงานคือ 20px หรือน้อยกว่าปรากฏ เกิดขึ้นใน Safari 4.0.4, Firefox 3.6.2 และ Chrome 5.0.342.7 beta บน Mac OS X 10.6.2 ฉันยังไม่ได้ทดสอบเบราว์เซอร์อื่น ๆ เพราะดูเหมือนว่าเบราว์เซอร์ไม่เฉพาะเจาะจง ฉันยังไม่สามารถเข้าใจได้ว่าความแตกต่างนั้นขึ้นอยู่กับความแตกต่างอย่างไรหากไม่ใช่ขนาดวิวพอร์ตอาจมีปัจจัยอื่นที่ทำให้ผลลัพธ์แตกต่างกันได้หรือไม่
ข้อมูลเชิงลึกใด ๆ จะได้รับการชื่นชม
ปรับปรุง:
ไม่ใช่ค่านิยม$(window).width()
และ$(window).height()
ที่กำลังเปลี่ยนแปลง มันคือค่าของตัวแปรที่ฉันใช้เพื่อเก็บค่าข้างต้น
ไม่ใช่แถบเลื่อนที่ทำให้ค่าสมบูรณ์ไม่มีแถบเลื่อนปรากฏขึ้นเมื่อค่าตัวแปรเปลี่ยนไป นี่คือรหัสของฉันที่ใช้เก็บค่าในตัวแปรของฉัน (ซึ่งฉันกำลังทำอยู่เพื่อให้มันสั้นลง)
(ทั้งหมดนี้อยู่ภายใน$(document).ready()
)
// ในตอนแรกประกาศตัวแปรที่จะมองเห็นได้สำหรับฟังก์ชัน otehr ภายใน .ready()
var windowWidth = $(window).width(); //retrieve current window width
var windowHeight = $(window).height(); //retrieve current window height
var documentWidth = $(document).width(); //retrieve current document width
var documentHeight = $(document).height(); //retrieve current document height
var vScrollPosition = $(document).scrollTop(); //retrieve the document scroll ToP position
var hScrollPosition = $(document).scrollLeft(); //retrieve the document scroll Left position
function onm_window_parameters(){ //called on viewer reload, screen resize or scroll
windowWidth = $(window).width(); //retrieve current window width
windowHeight = $(window).height(); //retrieve current window height
documentWidth = $(document).width(); //retrieve current document width
documentHeight = $(document).height(); //retrieve current document height
vScrollPosition = $(document).scrollTop(); //retrieve the document scroll ToP position
hScrollPosition = $(document).scrollLeft(); //retrieve the document scroll Left position
}; //end function onm_window_parameters()
ฉันแทรกคำสั่งแจ้งเตือนเพื่อตรวจสอบตัวแปรด้านบนเทียบกับค่าที่ควรจะถือ $(item).param()
ค่าอยู่สม่ำเสมอ แต่ตัวแปรของฉันเปลี่ยนสำหรับเหตุผลที่ฉันไม่สามารถคิดออก
ฉันได้ค้นหาสถานที่ที่โค้ดของฉันอาจเปลี่ยนแปลงค่าของตัวแปรที่เป็นปัญหาซึ่งตรงข้ามกับการดึงค่าที่ตั้งไว้และไม่พบเลย ฉันสามารถโพสต์ Shebang ทั้งหมดได้หากเป็นไปได้