Skrollr:滚动位置在最后一个关键帧之后传递函数

use*_*373 1 javascript jquery skrollr

Skrollr是一个很棒的插件,有很多选项,但我不能真正理解当滚动位置在最后一个关键帧之后是否有一些传递函数的方法.例如,看看这个小提琴.

滚动前100个像素时,scrollable-between类会更改scrollable-after.以类似的方式我想传递一个函数(例如:当滚动位置在最后一个关键帧之后执行操作时).

你会如何实现这一目标?

kal*_*ley 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;
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

您不一定必须拥有boxDone变量,但是当发生变量时,它不会多次运行.您也可以通过不重置该变量使其发生一次.

小提琴

我可能还应该提一下,你要确保无论你在那里做什么都应该跑得快,否则你就有可能放慢一切顺利进行的速度.您可以通过使用来解决这个问题setTimeout,但我还没有对此进行任何测试.