Javascript 传递节时激发函数-jquery
我正在努力让我的代码的最后一点工作。问题是当用户滚动经过Javascript 传递节时激发函数-jquery,javascript,jquery,Javascript,Jquery,我正在努力让我的代码的最后一点工作。问题是当用户滚动经过div 我的html的结构大致如下 <div class="panel-grid-cell"> <div id="pgc-1">...</div> <div id="pgc-2">...</div> ... <div id="pgc-n">...</div> </div> 其中,此将与href 此刻我所拥有的就是这个。 一个循环
div
我的html的结构大致如下
<div class="panel-grid-cell">
<div id="pgc-1">...</div>
<div id="pgc-2">...</div>
...
<div id="pgc-n">...</div>
</div>
其中,此
将与href
此刻我所拥有的就是这个。
一个循环通过div
并将其id
存储在数组中的函数。和一个buildali菜单
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);
}
这段代码不是我想要的,因为它经常检查我是否通过了div
,但我只需要启动一次函数
有什么帮助吗?前几天我自己找到了解决办法
在滚动函数中,只要在$(document).scrollTop()
等于refElement.offset()
时设置一个条件,即可启动一个函数,该函数工作正常
这意味着检查用户滚动的距离,如果该值等于div的偏移量,则启动一个函数 如果您只想触发一次方法,请使用jQuery的one
方法。。。参考hmm,关于one
的好观点,需要找到一种智能的方法来连接它。
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);
}
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);