以间隔滑动div – jQuery
我有一个大约30个div的列表(见下文。),并希望听到有关通过在顶部滑动一个并在设定时间从底部移除一个旋转它们的最佳方法的任何建议。 像每5-10秒一样。 即使页面上有30个,我也只想显示10个列表并按照提到的其余显示。
一个很好的例子是www.foursquare.com和他们最近的活动部分。 我想做同样的事情,除了使用预定数量的div而不是实时使用ajax。
任何建议或一些帮助指出我正确的方向将不胜感激。
提前感谢任何帮助或想法!
它并不特别针对jQuery,但您只需要在JavaScript中使用间隔。
function shiftDivs() { $('div:last').remove(); $('div:first').before(myNewDivElement); // Pseudo } setInterval(function() { shiftDivs(); }, 5000);
间隔function将每5秒调用一次。
我举个例子。 如果你不打算做ajax,你可能想要从你的30个div的底部开始并向上移动。 所以我们将显示div 20到29.(假设0-29 div指数)。 你设置你的html最初有
style="display:none"
在div 0-19。 然后,您使用此代码:
var headIndex = 19; var intervalId = null; $(document).ready(function() { intervalId = setInterval(function() { shiftDivs(); if(headIndex == -1) clearInterval(intervalId); }, 5000); }); function shiftDivs() { $($('div')[headIndex]).slideDown(); $($('div')[headIndex + 10]).slideUp(); headIndex--; }
附加暂停示例:
function pauseShift() { if(intervalId != null) // Currently Not Paused { clearInterval(intervalId); } else // Paused { ShiftDivs(); // Only include this if you want the shift to occur immediately on resume intervalId = setInterval(function() { shiftDivs(); if(headIndex == -1) clearInterval(intervalId); }, 5000); } }