Như tôi đã giải thích trong một chú thích, cuộn không thực sự thay đổi. Cuộn của cửa sổ dựa trên "khoảng cách từ trên cùng" (DfT). Đó là để nói rằng nếu bạn không có scrollbar, bạn DfT là 0. Một khi các thanh cuộn được giới thiệu bây giờ bạn có một khoảng cách để làm việc với.
Vì nội dung dài hơn nên chế độ xem chỉ cao quá nhiều pixel nên một số nội dung "rơi ra" ở cuối trang (phần thêm vào làm cho DfT bị tắt theo chiều cao của phần tử mới).
Cách tốt nhất tôi có thể nghĩ là chống lại nó với chiều cao của phần tử mới. Điều này cho phép bạn cuộn đến vị trí sau đó, khi các thành phần mới được thêm vào, bạn sửa đổi vị trí cuộn tương ứng.
Dưới đây là một ví dụ về những gì tôi có nghĩa là: http://jsfiddle.net/bradchristie/66RvC/1/
Và mã (để tham khảo):
var f = function(){
var t = $(window).scrollTop(), // Window's current scroll position
$d = $(d()).prependTo('#main'), // store the new element
h = $d.outerHeight(); // also get its height
if (t){ // Only adjust if they've scrolled
$(window).scrollTop(t + h); // add the delta to the scroll position
}
setTimeout(f, 1000);
};
Nguồn
2012-10-17 18:24:41
Quan điểm không thay đổi; trang trở nên dài hơn vì vậy khoảng cách di chuyển từ trên cùng là tĩnh trong khi chiều dài toàn trang trở nên lớn hơn động (do đó các phần tử dưới cùng vượt ra ngoài chế độ xem). Bạn đang cố gắng làm cho nó như vậy nếu bạn di chuyển tất cả các cách để dưới cùng của trang phần tử cuối cùng ở trong xem thay vì "rơi xuống"? –
@ Bradradie Tôi về cơ bản muốn 'những gì là visibile' [ngoại trừ thanh cuộn, mà rõ ràng là nên thay đổi] để không thay đổi ở tất cả không phân biệt prepends. – Prasanth