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().
scrollTopsẽ 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 windowvà document. Đối windowtượ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 bgcolortà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 windowvà document scrollTop. Cả hai sẽ cho cùng một đầu ra.
Trong sử dụng chung documentchủ 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