2013-10-04 7 views
17

Ich werde gerne 2 Offsets in jquery Wegpunkt haben. Momentan gibt es nur einen, den gleichen, für das Scrollen nach oben und nach unten.verschiedene Offset für jquery Wegpunkt "up" Ereignis

Ich verwende einen "down" Offset von 25%, und möchte einen "up" Offset von "75%". Wenn also der obere Teil eines Blocks 25% des oberen Bereichs des Ansichtsfensters erreicht und das Scrolling herunterfährt, wird 'down' ausgelöst. Und wenn der obere Teil eines Blocks 75% des oberen Bereichs des Ansichtsfensters erreicht und das Scrolling hochfährt, wird 'up' ausgelöst.

Jeder hat bereits Code für diese hysteresis geschrieben?

Antwort

48

Sie können dies tun, indem zwei Wegpunkte erstellen, die jeweils mit unterschiedlichen Offsets, reagiert jeweils nur in eine Richtung:

$('.thing').waypoint(function(direction) { 
    if (direction === 'down') { 
    // Do stuff 
    } 
}, { 
    offset: '25%' 
}).waypoint(function(direction) { 
    if (direction === 'up') { 
    // Do stuff 
    } 
}, { 
    offset: '75%' 
}); 

aktualisieren: Wenn Sie die jQuery verwenden Waypoints von 3,0 bauen, die oben Code wird nicht funktionieren, da waypoint das jQuery-Objekt nicht mehr verkettet. Es gibt stattdessen ein Array der erstellten Wegpunkt-Instanzen zurück. Wenn Sie zu halten, dass die Array-Referenz um nicht interessiert sind, würde der Code wie folgt aussehen:

var $things = $('.thing'); 

$things.waypoint(function(direction) { 
    if (direction === 'down') { 
    // Do stuff 
    } 
}, { 
    offset: '25%' 
}); 

$things.waypoint(function(direction) { 
    if (direction === 'up') { 
    // Do stuff 
    } 
}, { 
    offset: '75%' 
}); 
+1

+1, und danken Ihnen für das Speichern von mir etwas Zeit. –

+6

Danke für das Update zu: Version 3 –