2017-03-09 41 views
0

我有这个代码工作得很好。它随机移动一个容器内的元素。问题是我无法控制元素的速度;我已经尝试了几种解决方案(比如动画方法的正常持续时间),但是他们都没有工作。任何帮助都会有所帮助。的代码:jQuery:控制随机移动元素的速度

$(document).ready(function() { 
    animateDiv(); 
}); 

function makeNewPosition() { 
    var h = $('.main-translucid').height() - 50; 
    var w = $('.main-translucid').width() - 50; 

    var nh = Math.floor(Math.random() * h); 
    var nw = Math.floor(Math.random() * w); 

    return [nh, nw]; 
} 

function animateDiv() { 
    var newq = makeNewPosition(); 
    $('.fly').animate({ 
    top: newq[0], 
    left: newq[1], 
    right: newq[0], 
    bottom: newq[0] 
    }, function() { 
    animateDiv(); 
    }); 
}; 

小提琴:https://jsfiddle.net/hjtkesaj/

+1

你可以请你的代码做一个jsfiddle吗? –

+0

对不起一个不能把小提琴的工作,我会发布代码的其余部分 – glassraven

+0

https://jsfiddle.net/hjtkesaj/(随意添加到问题) –

回答

1

.animate接受在属性后毫秒可选duration参数。一个例子,使飞花费5每秒迭代:

function animateDiv() { 
    var newq = makeNewPosition(); 
    $('.fly').animate({ 
    top: newq[0], 
    left: newq[1], 
    right: newq[0], 
    bottom: newq[0] 
    }, 5000, function() { 
    animateDiv(); 
    }); 
}; 

Fiddle

随机化每次迭代这个值可能是创建飞般的混乱运动的廉价幻想的好方法。