2013-10-04 2 views
17

Мне нравится иметь 2 смещения в путевой точке jquery. В настоящее время существует только один, тот же, для прокрутки вверх и вниз.разное смещение для jQuery waypoint «up» event

Я использую смещение «вниз» на 25% и хотел бы «увеличить» «75%». Итак, когда верхняя часть блока находится на 25% от верхней части окна просмотра, а scolling идет вниз, запускается «вниз». И когда верхняя часть блока находится на уровне 75% верхней части окна просмотра, а scolling идет вверх, срабатывает «вверх».

У кого-то еще есть код для этого hysteresis?

ответ

48

Вы можете сделать это путем создания двух точек, каждая из которых с различными смещениями, каждый только отвечает на одном направлении:

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

Update: Если вы с помощью JQuery построить из Точек 3.0, выше код не будет работать, потому что waypoint больше не связывает объект jQuery. Вместо этого он возвращает массив созданных экземпляров Waypoint. Если вам не интересно хранить этот массив, код будет выглядеть так:

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, и спасибо, что спасли меня некоторое время. –

+6

Спасибо за обновление re: Version 3 –

Смежные вопросы