You can do this by creating two waypoints, each with different offsets, each only responding to one direction:
$('.thing').waypoint(function(direction) {
if (direction === 'down') {
// Do stuff
}
}, {
offset: '25%'
}).waypoint(function(direction) {
if (direction === 'up') {
// Do stuff
}
}, {
offset: '75%'
});
Update: If you're using the jQuery build of Waypoints 3.0, the above code will not work because waypoint
no longer chains the jQuery Object. It instead returns an array of the Waypoint instances created. If you're not interested in keeping that array reference around, the code would look like this:
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%'
});