传递一个部分时触发一个函数--jquery

时间:2016-04-26 06:04:27

标签: 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>

因此,我们的想法是当用户通过div id="pgc-1"为其余人传递函数等等。

这些div中的每一个都有一个附加li a的{​​{1}}项,所以我的函数看起来像这样

href

其中ga('send','event','scroll',city,$(this).text()) this

对应li a

在我拥有的那一刻是这样的。 循环遍历href并将其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); ,但我只需要触发一次我的功能。

任何帮助?

1 个答案:

答案 0 :(得分:0)

前几天找到了解决方案,

在滚动功能中,只需在$(document).scrollTop()等于refElement.offset()时设置一个条件,触发一个函数,它就能完美运行。

这意味着检查用户滚动的距离以及此值是否等于div的偏移量,触发一个函数。