Javascript变量间隔

时间:2016-11-18 03:35:43

标签: javascript setinterval

我需要电传打字信息,但我希望信件之间有一个随机的间隔。 这是我的恒定间隔代码:

$( document ).ready(function()
{
  var message = 'Is it possible to create a random interval in javascript?';
  var intervalId = window.setInterval( function ()
  {
    if(message.length>0) 
    {
      setTimeout(function () 
      {
        $("#message_area").append(message[0]);
        message = message.substring(1);
      }, 0);
    }
  }, 150);
});

https://jsfiddle.net/start_florin/7a4yrLzq/

3 个答案:

答案 0 :(得分:2)

您可以为每一轮使用setTimeout并设置下一个计时器。 https://jsfiddle.net/baz7gjed/

$( document ).ready(function()
{

  function writeWord(){
    if(message.length>0){
      $("#message_area").append(message[0]);
        message = message.substring(1);
        window.setTimeout( writeWord, Math.random()*500); //edit your random boundary here
      }
    }

  var message = 'Is it possible to create a random interval in javascript?';
  window.setTimeout( writeWord, 150);
});

答案 1 :(得分:2)

您可以执行以下操作:https://jsfiddle.net/gLjgkdyp/1/

我介绍了一个为setTimeout()

创建随机时间间隔的函数
//Create interval between min and max
function getRandomInt(min, max) {
  return Math.floor(Math.random() * (max - min + 1) + min);
}

在您的代码中:

setTimeout(function () 
      {
        $("#message_area").append(message[0]);
        message = message.substring(1);
      }, getRandomInt(10,4000)); //we create a random timeout amount here.

答案 2 :(得分:1)

可以使用带有随机数的jQuery delay

$(document).ready(function() {
    var message = 'Is it possible to create a random interval in javascript?';
    $.each(message.split(""), function(i,c) {
    	$("#message_area").delay(Math.random() * 500).queue(function (next) {
    	    $(this).append(c); next()
        });
    });
});
<div id='message_area'></div>