2013-05-09 51 views
5

Tôi đã có một vài divs trên trang của mình trông như thế này:Làm cách nào để ngăn cuộn trang khi tôi đã cuộn xuống dưới cùng của một div bên trong?

<div style="height:200px; overflow:auto;"> 
    <div style="height:300px;"> 
     <!--Lots of text here--> 
    </div> 
</div> 

Khi người dùng di chuột qua chúng và cuộn với con lăn họ di chuyển tốt. Vấn đề là, khi người dùng đến phía dưới, bản thân trang sẽ bắt đầu cuộn. Có một cách để ngăn chặn điều này xảy ra (sử dụng javascript nếu cần), để tiêu điểm nằm trên div ngay cả khi nó đã cuộn xuống dưới cùng và trang đó chỉ cuộn khi người dùng không được di chuột qua div ?

+0

Câu hỏi này đã được hỏi trước. Đây là một [demo] (http://jsbin.com/ixura3/3) và câu trả lời có thể được tìm thấy ở đây: http://stackoverflow.com/questions/5802467/prevent-scrolling-of-parent-element Về cơ bản, bạn cần phải ràng buộc sự kiện con lăn chuột và sử dụng Javascript để kiểm soát việc di chuyển các phần tử con. Trình cắm của anh ấy cũng có một số bản trình diễn thú vị: http://brandonaaron.net/code/mousewheel/demos –

Trả lời

2

Kiểm tra này bản demo: http://jsfiddle.net/zUGKW/1/

Code:

// bind the mousewheel event 
$('.myDiv').bind('mousewheel', function(e) { 
    // if scroll direction is down and there is nothing more to scroll 
    if(e.originalEvent.wheelDelta < 0 && 
    ($(this).scrollTop() + $(this).height()) >= this.scrollHeight) return false; 
}); 
+0

Không đúng về điều này? – techfoobar

+0

Tôi đã thử nó trong jfiddle, và nó không hoạt động. Khi bạn cuộn xuống cuối div, sau đó đợi một giây và cuộn lại, trang sẽ cuộn. – Urbycoz

+0

+1, hoạt động với tôi bằng Google Chrome 26.0.1410.64 m. – ComFreek

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