2013-07-31 35 views
5

Chạy sau trong Chrome luôn trả về 0:Lấy vị trí cuộn hiện trong Chrome sử dụng scrollTop() trên tải trang/làm mới

$(window).on('load', function(){ 
    console.log($(window).scrollTop()); 
}); 

Chạy cùng lệnh qua giao diện điều khiển:

$(window).scrollTop() 

Không trả về đúng số. (ví dụ: 843)

Có rất nhiều câu hỏi về vấn đề này ở đây trên StackOverflow nhưng không có câu hỏi nào cho tôi câu trả lời hoặc giải pháp thay thế chính xác. Tôi đang thua lỗ ...

+0

Bạn có nói về tải một URL trỏ đến một neo được đặt tên trên trang, f.ex: example.com/#section? – David

Trả lời

5

scrollTop() trả về vị trí dọc hiện tại của thanh cuộn. Thông thường khi tải trang, thanh cuộn nằm ở vị trí 0. Nếu bảng điều khiển in ra một thứ khác, thì bạn hoặc trình duyệt phải cuộn xuống trước khi chức năng được gọi.

Nếu bạn đang sử dụng tên neo hoặc làm mới trang từ một vị trí cuộn, bạn có thể gắn một handler cho sự kiện cuộn mà chỉ gây nên một lần - vào tải trang:

$(window).on('scroll', function() { 
    console.log($(this).scrollTop()); 
}); 
+2

Đó là lý do tại sao câu hỏi cho biết tải trang/làm mới. Bởi vì với một làm mới trình duyệt vẫn giữ vị trí cuộn của nó và đó là chính xác những gì tôi đang chăm sóc. – Chris

+0

Nevermind, giải pháp của bạn hoạt động tốt ... :) – Chris

+0

Tôi làm rõ câu trả lời để chỉ ra rằng giải pháp cũng bao gồm tính năng tự động cuộn mà một số trình duyệt có khi làm mới. – David

Các vấn đề liên quan