Sự khác biệt giữa:
$(window).scrollTop()
và
$(document).scrollTop()
Cảm ơn.
Sự khác biệt giữa:
$(window).scrollTop()
và
$(document).scrollTop()
Cảm ơn.
Câu trả lời:
Cả hai sẽ có tác dụng tương tự .
Tuy nhiên, như đã chỉ ra trong các ý kiến: $(window).scrollTop()
được hỗ trợ bởi nhiều trình duyệt web hơn $('html').scrollTop()
.
scrollTop
sẽ không cuộn ở bất cứ đâu, mà chỉ trả về vị trí cuộn hiện tại.
scrollTop()
là một getter và scrollTop(value)
là một setter. scrollTop()
không có đối số sẽ không thay đổi vị trí cuộn.
Đầu tiên, bạn cần hiểu sự khác biệt giữa window
và document
. Đối window
tượng là một đối tượng phía khách hàng cấp cao nhất. Không có gì ở trên window
đối tượng. JavaScript là một ngôn ngữ hướng đối tượng. Bạn bắt đầu với một đối tượng và áp dụng các phương thức cho các thuộc tính của nó hoặc các thuộc tính của các nhóm đối tượng của nó. Ví dụ, document
đối tượng là một đối tượng của window
đối tượng. Để thay đổi document
'màu nền s, bạn muốn thiết lập document
' s bgcolor
tài sản.
window.document.bgcolor = "red"
Để trả lời câu hỏi của bạn, không có sự khác biệt trong kết quả cuối cùng giữa window
và document
scrollTop
. Cả hai sẽ cho cùng một đầu ra.
Trong sử dụng chung document
chủ yếu để đăng ký các sự kiện và sử dụng window
để làm những việc như scroll
, scrollTop
, và resize
.
Cách trình duyệt chéo làm việc này là
var top = ($(window).scrollTop() || $("body").scrollTop());
$("body").scrollTop()
luôn trả về 0 trong Google Chrome.
$("body").scrollTop()
không được dùng nữa, không hoạt động trên Chrome hoặc FF nữa . Nó sẽ trả về 0
Tôi vừa gặp một số vấn đề tương tự scrollTop
được mô tả ở đây.
Cuối cùng, tôi đã khắc phục điều này trên Firefox và IE bằng cách sử dụng bộ chọn$('*').scrollTop(0);
Không hoàn hảo nếu bạn có các yếu tố bạn không muốn có hiệu lực nhưng nó có sự khác biệt về Tài liệu, Phần thân, HTML và Cửa sổ. Nếu nó giúp ...
$("html,body").scrollTop(val)
- không bao giờ có bất kỳ vấn đề nào