所以我的页面上连续有 5 个 div。我正在使用jQuery Waypoints向第一个类添加一个类,is-active
这会改变它的外观。然后我希望有一个延迟,比如 1 秒,当它添加到下一个时,然后在 1 秒之后,下一个,依此类推。这是我的代码:
<div class="five-step-waypoint"></div>
<div class="steps">
<div class="step">Step 1</div>
<div class="step">Step 2</div>
<div class="step">Step 3</div>
<div class="step">Step 4</div>
<div class="step">Step 5</div>
</div>
和我的 jQuery:
$(document).ready(function() {
$.fn.wait = function( ms, callback ) {
return this.each(function() {
window.setTimeout((function( self ) {
return function() {
callback.call( self );
}
}( this )), ms );
});
};
$('.five-step-waypoint').waypoint(function() {
$(".step:first-child").addClass("is-active");
$.each($(".step").wait(1000, function() {
$(this).addClass("is-active");
}));
}, {
triggerOnce: true
});
});
注意:我从这里获得了“等待”功能。如果您可以做得更好,请随意修改或完全删除它。
我遇到的问题是第一个.step
已.is-active
添加到它,观察到 1 秒延迟,但随后一次全部.is-active
添加到其他 4秒。.step
我需要它来.is-active
一一添加。此外,如果它可以循环播放(这样当每个.step
都有s 时.is-active
,它会清除所有.is-active
s 并再次返回开头),那就太好了!
感谢任何人给我的任何帮助!我还为您编写了一个jsfiddle来测试内容。我省略了 Waypoints 的内容以使其更容易。