我正在整理一个 jQuery 插件。该插件采用面板,并自动调整它们的高度。所以我从这样的事情开始:
<div class="panel">Test 1</div>
<div class="panel">Test 2</div>
<div class="panel">Test 3</div>
代码看起来像:
sizePanels: function(){
panels.each(function(){
$(this).height(docHeight);
});
},
有一个向下按钮,单击该按钮时,会将用户带到下一个 $(".panel):
nextPanel: function(){
$.scrollTo($(".panel:eq(" + panelIndex + ")"), 250, { easing: "swing" });
}
有了这个,我正在跟踪他们所在的面板索引:
if (panelIndex < (panelCount - 1) ) {
panelIndex += 1;
}
我试图找出一种方法来跟踪它们是否碰巧手动滚动,并传递其中一个元素,然后增加“panelIndex”,这样按钮就不会向上移动而不是向下移动,因为它从来没有由于用户使用滚动条而不是按钮而正确递增。这是我到目前为止所拥有的:
$(window).scroll(function(){
panels.each(function(index){
if ($(window).scrollTop() > $(this).scrollTop()) {
panelIndex = index;
// console.log(index);
}
});
if (panelIndex < panelCount - 1){
s.showDownButton();
}
});
代码过度检查并且感觉有些过火。有更好的方法吗?