Jquery 为随机选择的上下左右属性设置动画

Jquery 为随机选择的上下左右属性设置动画,jquery,Jquery,我正在尝试为x和y的随机属性设置动画 //generates a random right or left var randX = function(){ var randXresult; var startWith = Math.random()*5; if(startWith>3){ randXresult="right"; } else{randXresult="left"} return randXr

我正在尝试为x和y的随机属性设置动画

 //generates a random right or left
var randX = function(){
    var randXresult;
    var startWith = Math.random()*5;
    if(startWith>3){
        randXresult="right";
        }
    else{randXresult="left"}
        return randXresult
    }
//generates a random top or bottom
var randY = function(){
    var randYresult;
    var startWith = Math.random()*5;
    if(startWith>3){
        randYresult="top";
        }
    else{randYresult="bottom"}
        return randYresult
    }

//generates a random number 
var getRandomNo = function(){
    var randomNo = Math.random()*9999;
        return randomNo
    }

    // i am only showing the first .toggle() function 
    $(".innerColContainer div a").toggle(
function(){
    $(this).parent().siblings().each(function(i){
        Xrandom = randX()                                  
        Yrandom = randY()

        alert(Xrandom+Yrandom) //this alerts the results i am looking for 
 //but how do i get the results in the .animate()
    $(this).animate({ Xrandom:getRandomNo(), Yrandom:getRandomNo()}, 1400);
        });
所以我的问题是:我怎么能得到那个随机的
top
”或“
right
”在
.animate()
中,因为
alert(Xrandom+Yrandom)
具有我要查找的值。

如果我读取正确,“getRandomNo()”将不会返回均匀分布的随机数(这通常是你想要的,但在这种情况下可能不是……只有你能说出你想要它做什么).80%的结果将在5000和12999之间均匀分布,20%的结果将在8000和9999之间均匀分布。8000-9999的结果可能是5000-7999和10000-12999结果的两倍。

谢谢,但是如果我想添加静态属性,该怎么办呢。例如
不透明度
。我自己也尝试过,它确实有效<代码>道具['opacity']='0.1'也可以使用。我怀疑这里可能对您不起作用,因为当您已经设置了<代码>右侧时,您无法设置<代码>左侧,反之亦然(顶部/底部也是如此)。您需要重置不使用的值。不透明度应该很好。为了证明概念,请创建一个新的html文档,其中仅包含以下内容:您有一个好的观点,但除此之外,80%的结果将均匀分布在5000和12999之间
getRandomNo()当我尝试使用静态属性时,正在工作。KUDOSO看起来像是编辑了GeTrand DunNo来正确工作。您可能需要考虑重构RANX和RANDY,因为它们也没有真正意义上的(为什么变量是“StasfIt”)?为什么它在0到5之间做随机数?是故意的“Top”吗?将有40%的时间选择“底部”而“底部”将有60%的时间选择?很抱歉这些挑剔而不是真正的答案,但我认为d.的答案会起作用,所以我没有解决方案。谢谢Brien,你的正确答案,我如何使顶部和底部的机会随机相等?randomNum=Math.random()-0.5;如果(randomNum>=0){//do stuff}其他{//do other stuff}会给你一个50-50的分布。Math.random会给你一个介于0和1之间的值,因此你需要对该值小于.5的情况做一些处理,对该值大于.5的情况做一些处理。
var props = {};
props[Xrandom]=getRandomNo();
props[Yrandom]=getRandomNo();
$(this).animate(props, 1400);