2012-05-24 35 views
62
<div id="containerDiv"></div> 
#containerDiv { 
    position: absolute; 
    top: 0px; 
    width: 400px; 
    height: 100%; 
    padding: 5px; 
    font-size: .875em; 
    overflow-y: scroll; 
} 
document.getElementById("containerDiv").innerHTML = variableLongText; 

Làm thế nào để thiết lập lại vị trí cuộn trở lại đầu của container div lần sau?Cuộn trở lại đỉnh div

Trả lời

105
var myDiv = document.getElementById('containerDiv'); 
myDiv.innerHTML = variableLongText; 
myDiv.scrollTop = 0; 

Xem thuộc tính scrollTop.

+0

Đã thử nhưng không hoạt động. Khi một biếnLexttext được tải trong div vùng chứa và đang nhìn vào giữa nó, sau đó vuốt sang biến mớiLongtext, nó sẽ hiển thị trong vùng chứa, nhưng chúng ta sẽ không nhìn vào đầu của nó, nó sẽ được cuộn xuống một chút. – imhere

+0

@ s12345 Bạn nên tạo một trường hợp thử nghiệm có thể lặp lại cho chúng tôi thấy vấn đề của bạn (ví dụ: http://jsfiddle.net) và nói bạn đang sử dụng phiên bản OS/trình duyệt/phiên bản nào. – Phrogz

+1

Xin lỗi lỗi của tôi .. nó hoạt động! Đã lẫn lộn với hai divs tương tự. – imhere

50

Một cách khác để làm điều đó với một hình ảnh động trơn tru là như thế này

$("#containerDiv").animate({ scrollTop: 0 }, "fast"); 
+6

Hoạt động tốt, nhưng ** xin vui lòng ** không sử dụng 'chậm', nó quá ... chậm! – Pascal

+1

Thay vì truyền «chậm' làm đối số thứ hai. Bạn có thể chuyển vào một số nguyên sẽ là số mili giây để hoạt ảnh hoàn tất. –

+0

Đây là cách tốt nhất mà Iv tìm thấy cho đến nay. Nó có vẻ tốt với arg thứ hai thiết lập để 'nhanh', 1000, hoặc 500. – ekerner

18

Tôi đã thử các câu trả lời hiện có cho câu hỏi này, và không ai trong số họ làm việc trên Chrome cho tôi. Điều gì đã làm công việc là hơi khác nhau:

$('body, html, #containerDiv').scrollTop(0); 
0

Đối với tôi cách scrollTop đã không làm việc, nhưng tôi thấy khác:

element.style.display = 'none'; 
setTimeout(function() { element.style.display = 'block' }, 100); 

Không kiểm tra thời gian tối thiểu để vẽ css đáng tin cậy, mặc dù 100ms có thể quá mức.

8

scrollTo

window.scrollTo(0, 0); 

là giải pháp cuối cùng để di chuyển các cửa sổ để đầu - phần tốt nhất là nó không yêu cầu bất kỳ selector id và thậm chí nếu chúng ta sử dụng cấu trúc IFRAME nó sẽ làm việc cực kỳ tốt.

Phương thức scrollTo() cuộn tài liệu đến tọa độ được chỉ định.
window.scrollTo (xpos, ypos);
xpos Số bắt buộc. Tọa độ để cuộn đến, dọc theo trục x (ngang), theo pixel
ypos Số bắt buộc. Tọa độ để di chuyển đến, dọc theo trục y (dọc), tính theo pixel

jQuery

Một tùy chọn khác cũng làm như vậy được sử dụng jQuery và nó sẽ cung cấp một cái nhìn mượt mà cho cùng

$('html,body').animate({scrollTop: 0}, 100); 

trong đó 0 sau scrollTop chỉ định vị trí dọc thanh cuộn trong thông số pixel và thứ hai là thông số tùy chọn hiển thị thời gian tính bằng micro giây để hoàn thành tác vụ.

5

Đối với những người vẫn không thể thực hiện công việc này, hãy đảm bảo rằng phần tử tràn được hiển thị trước khi sử dụng hàm jQuery.

dụ:

$('#elem').show(); 
$('#elem').scrollTop(0); 
+0

Trình tiết kiệm cuộc sống! Đã bắt đầu mất ý chí sống với scrollTop không hoạt động! đã phải đặt cuộc gọi scrollTop của tôi trong một hàm setTimeout. –

1

Nếu tràn nội dung html một khung nhìn duy nhất, điều này làm việc cho tôi chỉ sử dụng javascript:

document.getElementsByTagName('body')[0].scrollTop = 0; 

Kính trọng,

0

này đã làm việc cho tôi:

document.getElementById('yourDivID').scrollIntoView(); 
0

Nếu bạn muốn cuộn với một chuyển đổi suôn sẻ, bạn có thể sử dụng điều này!

(Vanilla JS)

const tabScroll = document.getElementById("tabScroll"); 
window.scrollTo({ 
    'behavior': 'smooth', 
    'left': 0, 
    'top': tabScroll.offsetTop - 80 
}); 

Nếu người dùng mục tiêu của bạn là ChromeFirefox, thì đây là tốt! Nhưng tiếc là phương pháp này không được hỗ trợ đủ tốt trên tất cả các trình duyệt. Check Here

Hy vọng điều này sẽ hữu ích !!

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