2012-09-19 12 views
18

vedi prego questo:Come far scattare il plugin per waypoint jQuery quando un elemento è in vista e non scorre oltre?

http://jsfiddle.net/5Zs6F/2/

Come si può vedere solo quando si scorre oltre il primo rettangolo rosso diventa blu, vorrei che diventi blu nel momento in cui entra in vista. Questo è il motivo per cui il secondo non diventa mai blu perché non c'è abbastanza contenuto al di sotto di esso per consentire di scorrere oltre.

HTML:

Scoll this window pane 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<div class="box"></div> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<div class="box"></div> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 

CSS:

.box { width: 250px; height: 100px; border: 2px solid red; } 

jQuery:

$.getScript('http://imakewebthings.com/jquery-waypoints/waypoints.min.js', function() { 


    $('.box').waypoint(function() { 

     $(this).css({ 
      borderColor: 'blue' 
     }); 

    }); 


}); 

Come per renderlo fuoco il più presto l'elemento in questione si vede e non scorrere passato?

risposta

40

L'opzione offset determina dove deve essere attivato il waypoint in relazione alla parte superiore della finestra. Di default è 0, quindi il tuo elemento si attiva quando raggiunge la cima. Poiché ciò che si desidera è comune, i waypoint includono un semplice alias per impostare l'offset per attivare quando l'intero elemento viene visualizzato.

$('.box').waypoint(function() { 
    $(this).css({ 
    borderColor: 'blue' 
    }); 
}, { offset: 'bottom-in-view' }); 

Se si desidera al fuoco quando qualsiasi parte dei peeks elemento in dal basso, si dovrebbe impostare a '100%'.

+0

molto bello, grazie! – TK123

+0

@imakewebthings Scusa non sapevo come contattarti su StackOverflow ma sono preoccupato di qualcosa relativo ai Waypoint puoi per favore dare un'occhiata? ** [CLICCA QUI] (http://stackoverflow.com/questions/23563016/waypoint-not-working-on-overflowhidden) ** –

+0

I cosa puoi sapere più chiaramente sul waypoint se leggi questo articolo. http://www.script-tutorials.com/scrollbar-jquery-event-handling-using-waypoints/ @ tk123 – Bipon

0

Non funzionerà per me. Ho classi server con lo stesso nome e saranno tutte modificate se la pagina viene caricata/il primo elemento è sullo schermo.

jQuery(document).ready(function(){ 

jQuery('.zoomInDownInaktiv').waypoint(function() { 
    //jQuery(this).removeClass('zoomInDownInaktiv'); 
    jQuery(this).addClass('zoomInDown'); 
}, { offset: 'bottom-in-view' }); 

});

0

OK. Trovato una soluzione che funziona bene.

jQuery('.zoomInDownInaktiv').waypoint(function(direction) { 
    if (direction === "down") { 
     jQuery(this.element).removeClass('zoomInDownInaktiv'); 
     jQuery(this.element).addClass('zoomInDown'); 
    } 
}, { offset: '80%' });