2013-12-03 7 views
1

Skrollr - это потрясающий плагин, множество опций, но я не могу понять, есть ли какой-нибудь метод для передачи функции, когда положение прокрутки после последнего ключевой кадр. Например, взгляните на это fiddle.Skrollr: передать функцию, когда позиция прокрутки после последнего ключевого кадра

При прокрутке верхних 100 пикселей класс scrollable-between изменяется на scrollable-after. Аналогичным образом я хотел бы передать функцию (например: когда позиция прокрутки после последнего ключевого кадра делает материал).

Как бы вы это достигли?

ответ

5

Вы хотите использовать опцию render. Что-то вроде следующего:

var box = $('#box'), 
    boxDone = false; 
skrollr.init({ 
    forceHeight: false, 
    smoothScrolling: false, 
    render: function() { 
     if (box.hasClass('skrollable-after')) { 
      if (! boxDone) { 
       boxDone = true; 
       // do stuff 
      } 
     } else if (boxDone) { 
      boxDone = false; 
     } 
    } 
}); 

Вы не обязательно должны иметь переменную boxDone, но он держит его запуск несколько раз, когда это произойдет. Вы также можете сделать это только один раз, не перебирая эту переменную.

FIDDLE

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

+0

! FYI, если кто-то пытается заставить это работать на скрипке, это не будет, но locallt это работает! –

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