在无限循环上加载窗口的jQuery动画?
我需要一只手使这个代码在下面工作。 我已经让它工作,以便当用户在图像上盘旋时它会动画,然后在失去焦点时向下,但现在我希望它在无限循环上的窗口加载上运行。
$(document).ready(function(){ $(window).load(function(){ $('.navImage').animate({top:'-=13'}, 700) }, function(){ $('.navImage').animate({top:'+=13'}, 700); }); });
目前只有动画13像素,而不是向下,显然动画目前没有循环。 我需要使用某种回调吗?
任何帮助都会很棒,谢谢。
[编辑]删除高度:切换,并不意味着包括。
试试这个:
function moveUp() { $('.navImage').animate({top:'-=13', height:'toggle'}, 700, moveDown); } function moveDown() { $('.navImage').animate({top:'+=13'}, 700, moveUp); } $(document).ready(function(){ $(window).load(moveUp); });
===更新1 ===
function move(jElem, bUp) { jElem.animate( {top: (bUp ? '-' : '+') + '=13'}, 700, function() { move(jElem, !bUp); } ); } $(document).ready(function() { $(window).load(function() { $('.navImage').each(function() { move($(this), true); }); }); });
另见我的jsfiddle 。
===更新2 ===
现在他们从随机延迟开始:
function move(jElem, bUp) { jElem.animate( {top: (bUp ? '-' : '+') + '=13'}, 700, function() { move(jElem, !bUp); } ); } $(document).ready(function() { $('.navImage').each(function(iIndex, jElem) { // get random delay var iTime = Math.floor(Math.random() * 700); setTimeout( function() { move($(jElem), true); }, iTime ); }); });
另见我的jsfiddle 2 。
===更新3 ===
并在这个jsfiddle附加随机速度: jsfiddle 3 。
function anim_up() { $('.navImage').animate({top:'-=13', height:'toggle'}, 700, anim_down) }; function anim_down() { $('.navImage').animate({top:'+=13'}, 700, anim_up); }; window.onload = anim_up;
作为旁注,您应该使用ID替换该navImage
类,如果只有其中一个。