Làm cách nào để lấy giá trị vị trí cuộn của tài liệu?
Câu trả lời:
$(document).height() //returns window height
$(document).scrollTop() //returns scroll position from top of document
scrollHeight
.
Đây là cách lấy scrollHeight
phần tử thu được bằng cách sử dụng bộ chọn jQuery:
$(selector)[0].scrollHeight
Nếu selector
là id của phần tử (ví dụ elemId
), nó được đảm bảo rằng mục được lập chỉ mục 0 của mảng sẽ là phần tử bạn muốn chọn và scrollHeight
sẽ chính xác.
Nếu bạn đang sử dụng Jquery 1.6 trở lên, hãy sử dụng prop để truy cập giá trị.
$(document).prop('scrollHeight')
Các phiên bản trước được sử dụng để lấy giá trị từ attr nhưng không đăng 1.6.
document.getElementById("elementID").scrollHeight
$("elementID").scrollHeight
Một cái gì đó như thế này sẽ giải quyết vấn đề của bạn:
$.getDocHeight = function(){
var D = document;
return Math.max(Math.max(D.body.scrollHeight, D.documentElement.scrollHeight), Math.max(D.body.offsetHeight, D.documentElement.offsetHeight), Math.max(D.body.clientHeight, D.documentElement.clientHeight));
};
alert( $.getDocHeight() );
Ps: Hãy gọi chức năng đó mỗi khi bạn cần, cảnh báo dành cho mục đích kiểm tra ..
Để có được chiều cao có thể cuộn thực tế của các vùng được cuộn bởi thanh cuộn cửa sổ, tôi đã sử dụng $('body').prop('scrollHeight')
. Đây có vẻ là giải pháp làm việc đơn giản nhất, nhưng tôi đã không kiểm tra rộng rãi về khả năng tương thích. Emanuele Del Grande lưu ý về một giải pháp khác rằng điều này có thể sẽ không hoạt động đối với IE dưới 8.
Hầu hết các giải pháp khác hoạt động tốt đối với các phần tử có thể cuộn, nhưng điều này hoạt động cho toàn bộ cửa sổ. Đáng chú ý, tôi đã gặp vấn đề tương tự như Michael cho giải pháp của Ankit, cụ thể là, nó $(document).prop('scrollHeight')
đang quay trở lại undefined
.
Thử đi:
var scrollHeight = $(scrollable)[0] == document ? document.body.scrollHeight : $(scrollable)[0].scrollHeight;
Bạn có thể thử điều này, ví dụ: mã này đặt thanh cuộn ở dưới cùng cho tất cả các thẻ DIV
Hãy nhớ rằng: jQuery có thể chấp nhận một hàm thay vì giá trị dưới dạng đối số. "this" là đối tượng được xử lý bởi jQuery, hàm trả về thuộc tính scrollHeight của DIV hiện tại "this" và thực hiện nó cho tất cả DIV trong tài liệu.
$("div").scrollTop(function(){return this.scrollHeight})