我正在尝试创建一系列缓慢消失的 div,并在其容器上漂浮一段距离。一旦浮动 div (floater) 离开容器/屏幕外,它就会重新出现在它产生的位置并再次淡入,永远循环。
我已经成功地创建了基本动画,但我不知道有一种有效的方法来生成多个 div 并相互浮动/跟随到容器的边缘。
有谁知道我该怎么做?
这是我迄今为止的单个 div 动画:
function floaters()
{
$('.floater').each(function(){
$(this).animate({'opacity': '1'}, {queue: false, duration: 5000}) ;
$(this).animate({'left': '-=652'}, 2000, 'linear', function(){
$(this).css('left', '622px') ;
$(this).css('opacity', '0.0') ;
floaters() ;
}) ;
})
}
我不确定“每个”是否是我应该使用的。
你可以在这里看到我到目前为止所做的以及我正在努力实现的目标:
我基本上希望一系列框相互跟随并在每个框到达页面末尾时循环,与这个框完全相同,但每个框之间的起始距离是随机的。
@r0m4n 我想要的那种,但我希望每个盒子从同一个位置开始,它们之间有一个延迟,所以它们之间的空间是均匀的,并且一次不超过 8 个盒子。对脚本进行哪些调整以实现这一目标?
我重新编写了脚本,希望它能更好地解释我正在尝试做的事情。我改用了 setInterval,因为它可以让我更好地控制我想在动画中的某些点发生的事件:
var creationTimer ;
var moveTimer ;
function floaters()
{
var firstTime = 1 ;
moveTimer = setInterval(function(){
$('.floater').each(function(){
var pos = $(this).position() ;
$(this).css('left', (pos.left-2)+'px') ;
if(pos.left < -32 || firstTime == 1)
{
firstTime = 0 ;
$(this).css('left', '620px') ;
$(this).hide() ;
$(this).show(500);
}
if(pos.left < 500 && pos.left > 450)
{
clearTimeout(creationTimer) ;
creationTimer = setTimeout(function(){
$('#latest').append('<div class="floater"></div>') ;
}, 1000)
clearInterval(moveTimer);
}
})
}, 50)
}
在调用 clearInterval(moveTimer) 时,我希望出现一个新的 div 并跟随前面的框。我希望该循环重复 X 次。我希望我能很好地解释这一点。感谢您一直以来的帮助。
任何人都可以帮忙吗?