2010-05-06 82 views
6

我可以讓jscrollpne這樣,即使當子滾動達到其底部時,父窗格也不滾動。現在當孩子滾動達到父母的底部滾動發生。我只希望父級在鼠標移出子滾動條時滾動。jscrollpane塊滾動父母

+0

不介意自己知道這個答案。 – Atorian 2011-01-15 16:12:40

回答

5

您所描述的行爲是設計使然。這是本機瀏覽器滾動條在具有溢出的元素上的行爲方式:auto。我不會建議改變它。但是,如果你想那麼Borgenk的答案是正確的,你可以使用此代碼:

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

在這裏看到一個例子(您可能需要收縮你的窗口,使家長有任何需要滾動):http://jsfiddle.net/VYcDZ/51/

1

就遇到了這個問題,今晚......看見沒有人知道答案,所以我寫了起來

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

以上回答對我沒有工作。如果您熟悉編輯插件的源,你可以公開相關的內部方法的公共API:

// Public API 
$.extend(
    jsp, 
    { 

     ... 

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

    } 
); 

現在,您可以有條件地和務實eanable /禁用任何JScrollPane中的滾動:

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