在回调时反转变量值

时间:2013-06-16 15:11:46

标签: javascript jquery html css

我怎样才能做到这一点?首先是代码......

 function flutter() {
    var random = Math.floor(Math.random()*5);
    var $obj = $('.bird');
    $obj.animate({ top :'-=' + random + 'px' }, 20, flutter);
    } 
</script>

在上面的代码中,当执行回调时,我想要反转random的值。因此,我的目标是上下移动Class鸟,并试着看它是否会产生飘动效果。

2 个答案:

答案 0 :(得分:2)

您可以使用这样的闭包:

$obj.animate({ top :'-=' + random + 'px' }, 20, function(){ 
   flutter(random*-1);
});

这是完整的代码:

function flutter(offset) {
    var random = ( isNaN(offset) ) ? Math.floor(Math.random()*5) : (offset) ;
    var $obj = $('.bird');
    $obj.animate({ top :'-=' + random + 'px' }, 20, function(){ 
       flutter(random*-1);
    });
 } 

第一次通话很简单:flutter();

答案 1 :(得分:2)

我只是调整了上面的颤振,使其更加高效和方便。

 function flutter(distance, target) {
    // you can call flutter without argument. And no repetitive element finding is needed
    var random = distance || Math.floor(Math.random()*5);
    var $obj = target || $('.bird');
    $obj.animate({ top :'-=' + random + 'px' }, 20, function(){
        flutter(-random, $obj);
    });
    }