如何用javascript调用函数,然后在滚动事件中调用该函数的特定实例
How would I call a function in javascript, and then later, on a scroll event, call that specific instance of the function?
我想运行一个函数(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);
}
}
}
任何方向都将不胜感激!感谢
您可以使用立即调用函数表达式(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);
相关文章:
- 如何从模块链中调用函数.导出到节点中
- 调用函数内部的函数
- 在javascript中调用c函数
- DropDownListFor赢得't在更改时调用函数
- Javascript页面调用函数
- 在动画结束之前调用函数
- 允许父窗口在其不同域的子iframe上调用函数
- 运行Infinite Scroll后调用函数时出现问题
- JavaScript:在调用函数的文本输入上按enter键
- 使用大括号和不使用bracs调用函数的区别
- javascript在事件上调用函数
- 从index.html调用函数,该函数无限循环
- 从带参数的字符串变量调用函数中的函数
- 为什么 JS 不在滚动时调用函数
- 是否可以在不更改上下文的情况下调用函数.apply
- 如何在ES6类中使用参数调用函数
- AngularJS:调用函数时编号不更新
- JavaScript中的立即调用函数表达式(IIFE)-传递jQuery
- 在JavaScript中调用函数时自定义此选项
- 调用函数中声明的变量