2010-05-04 28 views
8

Khi người dùng cuộn xuống cuối trang, tôi muốn hiển thị một số div, với jQuery tất nhiên. Và nếu người dùng cuộn trở lại đầu anh ấy, div sẽ biến mất. Vậy làm thế nào để tính toán khung nhìn (hoặc bất cứ điều gì là đúng tên) :)Làm cách nào để hiển thị div khi người dùng đến cuối trang?

Cảm ơn

+0

bạn đang nói về một div sẽ có một vị trí: cố định; hoặc div nằm ở cuối nội dung? – codedude

+0

nó sẽ được cố định vị trí ở dưới cùng của trang, có thể "dưới: 50px" – Kenan

Trả lời

12

này phải giúp bạn bắt đầu:

<!doctype html> 
<html lang="en"> 
    <head> 
     <title>SO question 2768264</title> 
     <script src="http://code.jquery.com/jquery-latest.min.js"></script> 
     <script> 
      $(document).ready(function() { 
       $(window).scroll(function() { 
        if ($('body').height() <= ($(window).height() + $(window).scrollTop())) { 
         alert('Bottom reached!'); 
        } 
       }); 
      });  
     </script> 
     <style> 
      body { margin: 0; } 
     </style> 
    </head> 
    <body> 
     <p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p 
     <p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p 
     <p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p 
     <p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p 
    </body> 
</html> 

này giả định rằng bodymargin của 0. Khác bạn sẽ cần thêm lề trên và dưới vào $('body').height().

+0

Cảm ơn nhưng điều này doesnt làm việc: ( – Kenan

+0

Bạn đã kiểm tra lề? Tôi cập nhật câu trả lời để bao gồm một SSCCE – BalusC

+0

Yea, lề là 0, Tôi đang sử dụng CSS reset Và cũng có thể sử dụng jQuery 1.3.2? – Kenan

2

$ (document). scrollTop() sẽ cho bạn vị trí của thanh cuộn. bạn kiểm tra xem có chiều cao tài liệu không. sau đó mờ dần vào hoặc ra khỏi div.

2

Dưới đây là một chỉnh sửa nhỏ trên mã của BalusC nếu bạn muốn hiển thị một div không một popup javascript:

<head> 
    <title>SO question 2768264</title> 
    <script src="http://code.jquery.com/jquery-latest.min.js"></script> 
    <script> 
     $(document).ready(function() { 
      $(window).scroll(function() { 
       if ($("body").height() <= ($(window).height() + $(window).scrollTop())) { 
        $("#hi").css("display","block"); 
       }else { 
        $("#hi").css("display","none"); 
       } 
      }); 
     }); 
    </script> 
    <style> 
     body { margin: 0; } 
     #hi { 
      background: red; color: #FFF; position: fixed; bottom: 0px; right: 0px; display: none; 
     } 


    </style> 
</head> 
<body> 
    <p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p 
    <p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p 
    <p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p 
    <p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p<p>p 

    <div id="hi">HIIIIIIIIIIII</div> 
</body> 
+0

Xin chào. Hãy nói thay vì "cơ thể" tôi đang sử dụng một ID div và nếu tôi muốn "hi" xuất hiện khi tôi ở 80% của div di chuyển, ví dụ? :) Bình chọn lên sẽ trả một câu trả lời tốt :) –

5

Bạn có thể sử dụng như sau:

$(window).scroll(function() { 
    if ($(document).height() <= ($(window).height() + $(window).scrollTop())) { 
     //Bottom Reached 
    } 
}); 

tôi sử dụng điều này bởi vì tôi có

body { 
    height:100%; 
} 

Hope this helps

+0

Cảm ơn bạn, tôi đã chính xác trong cùng một trường hợp. Giải pháp của bạn làm việc cho tôi! – Adrien

+0

@Adrien Bạn được chào đón bạn tôi. Mừng vì tôi có thể giúp :) –

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