Другое смещение для события "вверх" jQuery

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

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

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

Ответы

Ответ 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%'
});