2010-05-06 35 views
6

Tôi có thể tạo jscrollpne sao cho khung chính không di chuyển ngay cả khi cuộn con đã chạm đến đáy của nó. Bây giờ khi di chuyển con xuống đến dưới cùng của cha mẹ xảy ra. Tôi muốn cha mẹ chỉ cuộn khi chuột ra khỏi scrollpane con.jscrollpane khối cuộn phụ huynh

+0

Sẽ không nhớ để biết câu trả lời cho bản thân mình. – Atorian

Trả lời

5

Các hành vi bạn mô tả là do thiết kế. Đây là cách các thanh cuộn trình duyệt gốc hoạt động trên một phần tử có tràn: tự động. Tôi sẽ không khuyên bạn nên thay đổi nó. Tuy nhiên, nếu bạn muốn thì câu trả lời Borgenk là đúng, bạn có thể sử dụng mã này:

$('.scroll-pane') 
    .jScrollPane() 
    .bind(
     'mousewheel', 
     function(e) 
     { 
      e.preventDefault(); 
     } 
    ); 

Xem ví dụ ở đây (bạn có thể cần phải thu nhỏ cửa sổ của bạn để phụ huynh có bất kỳ cần phải di chuyển): http://jsfiddle.net/VYcDZ/51/

1

Ran vào vấn đề này tối nay ... thấy không ai có câu trả lời vì vậy tôi đã viết nó lên

var blockScrollTarget;  
$('.jscroll').mousewheel(blockScroll); 
     ...... 
    function blockScroll(e) { 
     blockScrollTarget = blockScrollTarget || $(e.currentTarget); 
     var d = blockScrollTarget.data('jsp'); 
     if(d.getPercentScrolledY() == 1 || d.getPercentScrolledY() == 0) { 
      return true; 
     } 
     if(d.getIsScrollableV()) { 
      e.preventDefault(); 
     } 
     } 
0

những câu trả lời ở trên không làm việc cho tôi. Nếu bạn cảm thấy thoải mái với việc chỉnh sửa mã nguồn plugin, bạn có thể tiếp xúc với các phương pháp nội bộ liên quan đến api công cộng:

// Public API 
$.extend(
    jsp, 
    { 

     ... 

     initMousewheel : function(){ 
     initMousewheel(); 
     }, 
     removeMousewheel : function(){ 
     removeMousewheel(); 
     } 

    } 
); 

Bây giờ bạn có thể có điều kiện và thực dụng eanable/vô hiệu hóa các di chuyển của bất kỳ JScrollPane:

api = $('#full-page-container').data('jsp'); 
api.removeMousewheel(); // disable 
api.initMousewheel(); // enable