Tôi đang viết một trang web bằng cách sử dụng jquery liên tục gọi $(window).width()
và $(window).height()
định vị các phần tử và kích thước dựa trên kích thước khung nhìn.
Khi khắc phục sự cố, tôi phát hiện ra rằng tôi nhận được các báo cáo kích thước chế độ xem hơi khác trong các lệnh gọi lặp lại các hàm jquery ở trên khi chế độ xem không được thay đổi kích thước.
Tự hỏi liệu có bất kỳ trường hợp đặc biệt nào có ai biết khi nào điều này xảy ra không, hoặc nếu đây chỉ là cách nó là. Sự khác biệt về kích thước được báo cáo là 20px trở xuống, nó xuất hiện. Nó xảy ra trong Safari 4.0.4, Firefox 3.6.2 và Chrome 5.0.342.7 beta trên Mac OS X 10.6.2. Tôi chưa kiểm tra các trình duyệt khác vì nó có vẻ không dành riêng cho trình duyệt. Tôi cũng không thể tìm ra sự khác biệt phụ thuộc vào điều gì, nếu đó không phải là kích thước khung nhìn, liệu có yếu tố nào khác khiến kết quả khác nhau không?
Bất kỳ cái nhìn sâu sắc sẽ được đánh giá cao.
cập nhật:
Nó không phải là các giá trị của $(window).width()
và $(window).height()
đang thay đổi. Đó là các giá trị của các biến mà tôi đang sử dụng để lưu trữ các giá trị ở trên.
Nó không phải là thanh cuộn đang bỏ qua các giá trị, không có thanh cuộn nào xuất hiện khi các giá trị biến thay đổi. Đây là mã của tôi để lưu trữ các giá trị trong các biến của tôi (tôi đang làm chỉ để chúng ngắn hơn).
(tất cả điều này là bên trong $(document).ready()
)
// ban đầu khai báo các biến để hiển thị cho các hàm otehr trong .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()
Tôi đã chèn một câu lệnh cảnh báo để thăm dò các biến ở trên so với các giá trị mà chúng được cho là đang giữ. Các $(item).param()
giá trị vẫn nhất quán, nhưng các biến của tôi thay đổi vì những lý do tôi không thể tìm ra.
Tôi đã tìm kiếm những nơi mà mã của tôi có thể thay đổi giá trị của các biến được đề cập, trái ngược với việc chỉ lấy các giá trị đã đặt của chúng và không thể tìm thấy biến nào. Tôi có thể đăng toàn bộ shebang ở đâu đó nếu đó là khả năng.