Javascript 对不同对象使用不同值的相同函数
我有这个函数来移动我的#cubo1,但我想用不同的值将相同的函数应用于其他函数(#cubo2,#cubo3和#cubo4)。但是我对这个有点陌生,我不知道怎么做,我尝试了复制函数的一些部分,但每次只有一个起作用 HTML JavaScript:Javascript 对不同对象使用不同值的相同函数,javascript,jquery,html,function,Javascript,Jquery,Html,Function,我有这个函数来移动我的#cubo1,但我想用不同的值将相同的函数应用于其他函数(#cubo2,#cubo3和#cubo4)。但是我对这个有点陌生,我不知道怎么做,我尝试了复制函数的一些部分,但每次只有一个起作用 HTML JavaScript: <script type="text/javascript"> $(document).ready(function(){ animateDiv(); }); function makeNewPosition(){
<script type="text/javascript">
$(document).ready(function(){
animateDiv();
});
function makeNewPosition(){
var h = $('.fundo').height() - 50;
var w = $('.fundo').width() - 50;
var nh = Math.floor(Math.random() * h);
var nw = Math.floor(Math.random() * w);
return [nh,nw];
}
function animateDiv(){
var newq = makeNewPosition();
var oldq = $('#cubo1').offset();
var speed = calcSpeed([oldq.top, oldq.left], newq);
$('#cubo1').animate({ top: newq[0], left: newq[1] }, speed, function(){
animateDiv();
});
};
function calcSpeed(prev, next) {
var x = Math.abs(prev[1] - next[1]);
var y = Math.abs(prev[0] - next[0]);
var greatest = x > y ? x : y;
var speedModifier = 0.01;
var speed = Math.ceil(greatest/speedModifier);
return speed;
}
</script>
$(文档).ready(函数(){
animateDiv();
});
函数makeNewPosition(){
var h=$('.fundo').height()-50;
var w=$('.fundo').width()-50;
var nh=数学地板(数学随机()*h);
var nw=Math.floor(Math.random()*w);
返回[nh,nw];
}
函数animateDiv(){
var newq=makeNewPosition();
var oldq=$('#cubo1').offset();
var速度=计算速度([oldq.top,oldq.left],newq);
$('#cubo1')。动画({top:newq[0],left:newq[1]},速度,函数(){
animateDiv();
});
};
函数calcSpeed(上一个,下一个){
var x=Math.abs(prev[1]-next[1]);
var y=Math.abs(上一个[0]-下一个[0]);
var最大=x>y?x:y;
var speedModifier=0.01;
var speed=Math.ceil(最大/速度修改器);
返回速度;
}
您的jQuery选择器可以是一个变量:
var i = 1; //or 2 or 3 or 4...
$('#cubo' + i).animate(...);
这也可以是animateDiv函数的参数:
function animateDiv(i){
$('#cubo' + i).animate(...);
}
如果要为所有对象设置动画,可以将其粘贴到for循环中:
for(var i = 1; i < 5; i++){
$('#cubo' + i).animate(...);
}
for(变量i=1;i<5;i++){
$('#cubo'+i).动画(…);
}
你所说的“每次只有一个有效”是什么意思?我尝试的一切都像复制粘贴“函数animateDiv()…”,但将“cubo1”替换为“cubo2”,并更改某些值,其中只有一个有效。。
function animateDiv(i){
$('#cubo' + i).animate(...);
}
for(var i = 1; i < 5; i++){
$('#cubo' + i).animate(...);
}