Tôi đang cố gắng đặt vị trí cuộn trên một trang để con lăn được cuộn hết cỡ lên đầu.
Tôi nghĩ tôi cần một cái gì đó như thế này nhưng nó không hoạt động:
(function () { alert('hello'); document.body.scrollTop = 0; } ());
Bất kỳ ý tưởng?
Tôi đang cố gắng đặt vị trí cuộn trên một trang để con lăn được cuộn hết cỡ lên đầu.
Tôi nghĩ tôi cần một cái gì đó như thế này nhưng nó không hoạt động:
(function () { alert('hello'); document.body.scrollTop = 0; } ());
Bất kỳ ý tưởng?
Câu trả lời:
Bạn có thể sử dụng window.scrollTo(), như thế này:
window.scrollTo(0, 0); // values are x,y-offset
Lưu ý rằng nếu bạn muốn cuộn một phần tử thay vì toàn bộ cửa sổ, các phần tử không có phương thức scrollTovà scrollBy. Bạn nên:
var el = document.getElementById("myel"); // Or whatever method to get the element
// To set the scroll
el.scrollTop = 0;
el.scrollLeft = 0;
// To increment the scroll
el.scrollTop += 100;
el.scrollLeft += 100;
Bạn cũng có thể bắt chước các hàm window.scrollTovà window.scrollByđối với tất cả các phần tử HTML tồn tại trong trang web trên các trình duyệt vốn không hỗ trợ nó :
Object.defineProperty(HTMLElement.prototype, "scrollTo", {
value: function(x, y) {
el.scrollTop = y;
el.scrollLeft = x;
},
enumerable: false
});
Object.defineProperty(HTMLElement.prototype, "scrollBy", {
value: function(x, y) {
el.scrollTop += y;
el.scrollLeft += x;
},
enumerable: false
});
vì vậy bạn có thể làm:
var el = document.getElementById("myel"); // Or whatever method to get the element, again
// To set the scroll
el.scrollTo(0, 0);
// To increment the scroll
el.scrollBy(100, 100);
LƯU Ý: Object.definePropertyđược khuyến khích, vì trực tiếp thêm thuộc tính vào prototypelà một thói quen xấu (Khi bạn nhìn thấy nó :-).
... Hoặc chỉ cần thay thế bodybằng documentElement:
document.documentElement.scrollTop = 0;