我想运行一个函数(scrollSprite),在加载时运行for循环,用一堆if语句“填充”自身。然后在滚动事件后我想调用这个特定的“填充”或“构建”功能。我知道如何在滚动上调用一个函数,我的问题是具体的,我不知道如何调用该函数的特定实例。
见下面的代码:
var scrollSprite = function(distance, frames, frameSize, scrollInterval){
minScroll = 0;
maxScroll = -scrollInterval;
for (i = 0; i < frames; i++){
if(distance < minScroll && distance >= maxScroll){
$('#sprite').css("top", -scrollInterval);
}
minScroll = maxScroll;
maxScroll -= scrollInterval;
}
}
window.addEventListener("scroll", function(e){
if($('#finding-finders').hasClass('active')){
var scrollTop = $(window).scrollTop(),
elementOffset = $('#finding-finders').offset().top;
distance = (elementOffset - scrollTop);
//if the the element has reached the window then run instance of scrollSprite
if(distance < 0){
scrollSprite(distance, 10, 300, 20);
}
}
}
任何方向都将不胜感激!谢谢
答案 0 :(得分:0)
您可以使用立即调用的函数表达式(IIFE)。 见这个例子:
var scrollFn = (function() {
// code here to do something immediately
// return a new function
return function(event) {
// code here to run when scrolling
};
})(); // immediately invoke function
window.addEventListener('scroll', scrollFn);