在JQuery的动画函数中将随机值作为持续时间

时间:2014-02-24 09:32:08

标签: jquery

在我的代码中,我使用了1000毫秒作为动画函数的持续时间值。现在我想用一个随机值代替这个值。我该怎么做?

<html>
<body>
<script src="jquery-1.11.0.min.js"></script>
<script>
$(document).ready(function () {
$('#btn').click(function () {
$('#i1').animate({
'margin-left': '+=1155px'
},1000);
});
</script>
<img src="images.jpg" height="100px" width="200px" id="i1"><br>
<input type="button" value="start" id="btn">
</body>
</html>

2 个答案:

答案 0 :(得分:1)

这应该像我想的那样简单。

使用

Math.floor((Math.random()*100)+1);

其中* 100是要生成的最大值。

<script src="jquery-1.11.0.min.js"></script>
<script>
jQuery(function( $ ){ // Dom ready shorthand
  $('#btn').click(function () {
      $('#i1').animate({
        'margin-left': '+=1155px'
      }, Math.floor((Math.random()*1000)+1) );
  });
});
</script>

如果您需要在更多地方重复使用随机,您可以使用自己的可重用方法获得乐趣:

var MM = { // My Methods
   rand : function(min,max) { // RANDOMIZER
       return Math.floor(Math.random()*(max-min+1)+min);
   },  // comma separate 
   something : function() {
       // return your other method
   }
}

并使用MM.rand( minValue , maxValue);

之类的内容
$('#i1').animate({marginLeft: '+=1155'}, MM.rand(200, 1000) );

答案 1 :(得分:0)

您可以生成随机数作为amimate()函数的持续时间参数 然后你的代码变成了

$(document).ready(function () {
$('#btn').click(function () {
$('#i1').animate({
'margin-left': '+=1155px'
},Math.floor((Math.random()*2000)+1000));
});

这里生成1000到2000之间的随机数。