другое смещение для события jquery waypoint up

мне бы хотелось иметь 2 смещения в путевой точке jquery. В настоящее время есть только один, одинаковый, для прокрутки вверх и вниз.

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

Кто-нибудь уже написал код для этого гистерезиса?


person Softlion    schedule 04.10.2013    source источник


Ответы (1)


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

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

Обновление: если вы используете jQuery-сборку Waypoints 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%'
});
person imakewebthings    schedule 04.10.2013