2010-05-06 19 views
6

Posso creare jscrollpne in modo tale che il riquadro principale non scorra nemmeno quando lo scroll del bambino ha raggiunto il fondo. Ora, quando lo scorrimento del bambino raggiunge lo scorrimento inferiore del genitore si verifica. Voglio che il genitore scorra solo quando il mouse è fuori dal riquadro di scorrimento figlio.jscrollpane block scrolling parent

+0

Non mi dispiacerebbe conoscere la risposta a questo me stesso. – Atorian

risposta

5

Il comportamento descritto è di progettazione. Questo è il modo in cui le barre di scorrimento del browser nativo si comportano su un elemento che ha overflow: auto. Non raccomanderei di cambiarlo. Tuttavia, se si desidera, allora la risposta di Borgenk è corretta, è possibile utilizzare questo codice:

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

vedere un esempio qui (potrebbe essere necessario per ridurre la finestra in modo che il genitore ha alcun bisogno di scorrere): http://jsfiddle.net/VYcDZ/51/

1

imbattuto in questo problema stasera ... non vide nessuno aveva la risposta così ho scritto fino

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

le risposte di cui sopra non ha funzionato per me. Se hai dimestichezza con la modifica del sorgente di plug-in, è possibile esporre i metodi interni relativi alle API di pubblico:

// Public API 
$.extend(
    jsp, 
    { 

     ... 

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

    } 
); 

Ora è possibile condizionale e pragmaticamente eanable/disabilitare lo scorrimento di qualsiasi JScrollPane:

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