2013-10-18 26 views
6

Tôi cần cuộn xuống khoảng 50px khi trang được tải. Đây là những gì tôi đang sử dụng:Cuộn xuống khi tải trang

$(window).load(function(){ 
    $("html,body").scrollTop(55); 
}); 

Tôi cũng đã thử:

scrollTo(0,55) 

này hoạt động tốt trong Firefox và IE, tuy nhiên trong Chrome, Safari và Opera nó cuộn xuống đến vị trí thích hợp và sau đó nhảy trở lại lên trên cùng (hoặc vị trí cuộn cuối cùng).

Tôi cũng đã thử sử dụng id phần tử để cuộn xuống, nhưng trình duyệt vẫn ghi đè lên nó. Tôi đã thử cách này:

htttp://website.com#element 
+0

Cố gắng đặt mã của bạn bên trong hàm sẵn sàng DOM thay vì '$ (function() {$ (" html, body "). ScrollTop (55);});' – Stphane

+0

Chỉ cần thử nó, vẫn bị ghi đè bởi trình duyệt . –

+0

Bạn có băm trong url của mình không? –

Trả lời

4

Tôi nghĩ rằng vấn đề của bạn là bạn đang sử dụng $ (cửa sổ) .load và một số trình duyệt gặp sự cố khi mọi thứ vẫn chưa được hiển thị đầy đủ. Hãy thử trao đổi để

$(document).ready(function(){ 
    $("html,body").scrollTop(55); 
}); 

vẻ để làm việc tốt trên mọi trình duyệt ở đây http://jsfiddle.net/7jwRk/1/

Thông tin

$ (document) .ready

thực hiện khi HTML Document được nạp và DOM là đã sẵn sàng

$ (cửa sổ) .load

thực hiện khi trang đầy đủ được tải đầy đủ, bao gồm tất cả các khung, đối tượng và hình ảnh

+0

jsfiddle của bạn cũng sử dụng '$ (cửa sổ).load() ' – HenningCash

+0

Điều này có tác dụng, nhưng không phải khi tôi đưa vào trang của mình, tôi nghĩ rằng nó hoạt động vì js fiddle chạy mã trong iframe. –

+0

Nếu bạn thử làm một cái gì đó như thế này, nó có thể hiển thị cho bạn khi nào và nếu có thứ gì đó đang chiếm đoạt scrollTop $ của bạn ("html, body") animate ({scrollTop: 0}, 1000, function() {alert ("got here")); –

2

Bạn có thể sử dụng hàm scrollIntoView(). Điều này được hỗ trợ trên hầu hết các trình duyệt (ngay cả IE6).

document.getElementById('header').scrollIntoView() 
+0

Tôi thậm chí đã thử điều này, trình duyệt vẫn đặt lại nó. –

0

Ngoài ra, chỉ cần bắn này ở phần cuối của cơ thể của bạn:

... 
    <script type="text/javascript"> 
     $("html,body").scrollTop(55); 
    </script> 
</body> 
</html> 
+0

Chỉ cần thử, trình duyệt sẽ ghi đè lên. –

1
<script type="text/javascript"> 
    $(document).ready(function(){ 
    var divLoc = $('#123').offset(); 
    $('html, body').animate({scrollTop: divLoc.top}, "slow"); 
}); 
</script> 

Thêm id = "123" cho bất kỳ <div> nó sẽ tự động di chuyển nó xuống khi tải trang.

Đây là một tập lệnh khác nếu tập lệnh trước đó không hoạt động!

<script> 
window.setInterval(function() { 
var elem = document.getElementById('fixed'); 
elem.scrollTop = elem.scrollHeight; }, 3000); 
</script> 

Thêm id = "fixed" vào bất kỳ <div> nó sẽ tự động cuộn xuống khi tải trang.

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