2010-05-06 2 views
6

Puis-je créer jscrollpne de manière à ce que le volet parent ne défile pas même si le défilement de l'enfant a atteint son niveau le plus bas. Maintenant, lorsque le défilement de l'enfant atteint le bas, le défilement du parent se produit. Je veux que le parent défile seulement quand la souris est hors de l'enfant scrollpane.jscrollpane block scroll parent

+0

Cela ne me dérangerait pas de connaître la réponse à celui-ci moi-même. – Atorian

Répondre

5

Le comportement que vous décrivez est par la conception. Voici comment les barres de défilement du navigateur natif se comportent sur un élément qui a un débordement: auto. Je ne recommanderais pas de le changer. Toutefois, si vous souhaitez ensuite la réponse de Borgenk est correcte, vous pouvez utiliser ce code:

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

Voir un exemple ici (vous devrez peut-être réduire votre fenêtre de sorte que le parent a besoin de faire défiler): http://jsfiddle.net/VYcDZ/51/

1

rencontré ce soir ... problème ne voyait personne avait la réponse si je l'ai écrit vers le haut

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

les réponses ci-dessus ne fonctionne pas pour moi. Si vous êtes à l'aise avec l'édition de la source de plug-in, vous pouvez exposer les méthodes internes pertinentes au api public:

// Public API 
$.extend(
    jsp, 
    { 

     ... 

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

    } 
); 

Maintenant vous pouvez conditionnellement et pragmatiquement eanable/désactiver le défilement d'une JScrollPane:

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