我正在制作一种矩阵式背景,图像会随机下降。 我想把分区传给一个函数作为开始动画的参数。我无法弄清楚如何实现这一目标。我不认为为每个下降的图形编写相同的函数是一种好的做法。 这就是我所拥有的 -
<div id="l_0" class="drop_leds">
</div>
<div id="l_1" class="drop_leds">
</div>
<div id="l_2" class="drop_leds">
</div>
<div id="l_3" class="drop_leds">
</div>
$(document).ready(function(){
function row_01(id){
var movePixAmount = 10;
setInterval(function(){
$(id).animate({ marginTop: movePixAmount+"px" }, 10);
movePixAmount = movePixAmount +10;
if(movePixAmount === 600){
movePixAmount = 0;
};
},
100);//inter
};
row_01("#l_0")
感谢您的帮助
答案 0 :(得分:3)
这是一场漫长的战斗,但我赢了(:如果你用一个功能做到这一点,就会有冲突,或者他们都会有相同的速度。
但相反,您可以使用不同的速度编写4个不同的setInterval
functions
并应用这些functions
个元素,例如100个元素。只需定义不同的left
值即可。 Here is working jsFiddle.
<强> jQuery的:强>
var eleHeight = $('.drop_leds').height();
var windowH = $(window).height();
var count1 = 0;
var count2 = 0;
var counter;
var windowLimit = windowH + eleHeight;
counter = window.setInterval(function() {
if( count1 >= 0 && count1 < windowLimit ) {
count1 += 1;
$('#l_0,#l_6').css({'top':count1 +'px'});
}
else if( count1 >= windowLimit ) {
count1=0; $('#l_0,#l_6').css({'top':'-'+ eleHeight +'px'});
}
},1);
counter = window.setInterval(function() {
if( count2 >= 0 && count2 < windowLimit ) {
count2 += 4;
$('#l_1,#l_4').css({'top':count2 +'px'});
}
else if( count2 >= windowLimit ) {
count2=0; $('#l_1,#l_4').css({'top':'-'+ eleHeight +'px'});
}
},1);
<强>的CSS:强>
.drop_leds {position:absolute; width:10px;height:60px;background:black;top:0px; }
#l_0 { left:40px; }
#l_1 { left:70px; }
#l_2 { left:110px; }
#l_3 { left:140px; }
#l_4 { left:180px; }
#l_5 { left:210px; }
#l_6 { left:220px; }
#l_7 { left:240px; }
答案 1 :(得分:0)
我知道这是旧的,但是如果另一个人最终看到这里,我制作了一个插件,你可以添加到你的网站,使动画矩阵背景工作。 https://github.com/manacu/manacuMatrixBg
希望有所帮助!