在传递节时触发一个函数 - jquery
Fire a function when passing a section - jquery
我正在努力让我的代码的最后一点工作。问题是当用户滚动到div
时,我需要触发一个函数
所以我的html的结构大致是这样的
<div class="panel-grid-cell">
<div id="pgc-1">...</div>
<div id="pgc-2">...</div>
...
<div id="pgc-n">...</div>
</div>
所以这个想法是当用户传递一个div
时id="pgc-1"
触发一个函数,依此类推。
这些div中的每一个都有一个附加了href
的li a
项目,所以我的函数看起来像这样
ga('send','event','scroll',city,$(this).text())
其中this
将与href
li a
对应
目前我所拥有的就是这个。一个循环遍历div
并将其id's
存储在数组中的函数。并构建li a
菜单。
var li="";
var linames = ["Intro","1925","1935","1945","1955","1965","1975","1985","1995","2005","Now"];
var i = 0;
function getSectionIDs()
{
$("div.panel-grid-cell").children().each(function() {
if(linames[i] !== undefined)
{
li += "<li><a href='#"+$(this).attr('id')+"'>"+linames[i]+"</a></li>";
}
i++;
});
$("ul.timeline-items").append(li);
}
现在我还有一个函数,可以检查我为每个li
项目滚动和更改类的距离。
function onScroll(event){
var scrollPos = $(document).scrollTop();
$('ul.timeline-items li a').each(function () {
var currLink = $(this);
var refElement = $(currLink.attr("href"));
if (refElement.position().top -75 <= scrollPos && refElement.position().top+75 + refElement.height()-75 > scrollPos) {
$('ul.timeline-items li a').removeClass("active");
currLink.addClass("active");
}
else{
currLink.removeClass("active");
}
});
}
$(document).on("scroll", onScroll);
这段代码不是我想要的,因为它会不断检查我是否通过了div
,但我只需要触发一次我的函数。
有什么帮助吗?
前几天自己找到了解决方案,
在滚动函数中,只需在$(document).scrollTop()
等于refElement.offset()
时放置一个条件,触发一个函数,它就可以完美运行。
这意味着检查用户滚动了多远,如果此值等于div 的偏移量,则触发一个函数。
相关文章:
- 我可以在json对象中添加一个函数吗
- 如何在JQuery函数中定义一个值,然后调用另一个函数并使用该值
- 是否可以将一个函数输入连接到另一个函数调用的文本
- 在另一个函数中使用变量this
- 在另一个函数成功结束后调用该函数
- mongoose.connect undefined不是一个函数
- 监听器必须是一个函数
- 使用JS函数来使用另一个函数的语法?node.js
- 如何取消object.prototypes javascript的一个函数
- 从Chrome扩展名中的popup.html文件在background.js文件中运行一个函数
- 嵌套到另一个函数中的Fancybox函数;不起作用
- 如何在javascript中使用不止一个函数
- jQuery-在页面加载时执行一个函数
- jquery UI draggable:UI.children不是一个函数
- jQuery Mobile Undefined不是一个函数
- 如何在php中创建一个函数,该函数与文本区域一起工作,通过输入类似[color:red]的内容来打印具有等效颜色的文本
- javascript函数将数据添加到屏幕,但随后被另一个函数覆盖
- JS异常:animate不是一个函数
- 如何将一个函数附加到一个不存在的元素上
- JavaScript/jQuery-添加添加和删除类与下一个函数之间的延迟