Использование jquery для случайного показа чего-либо - PullRequest
1 голос
/ 17 октября 2011

Моя проблема заключается в следующем:

У меня div с фоновым изображением, непрозрачность 0! Когда вы наводите курсор на него, непрозрачность становится 1, но я также хочу, чтобы он несколько раз показывал случайным образом. Так что я как бы ищу способ случайным образом дать этому div значению непрозрачности 1.

Ответы [ 3 ]

2 голосов
/ 17 октября 2011
$(function(){
    setInterval(someFunction, 1000);  //1000 is milliseconds to next random check
});

function someFunction(){
    var chance = 10;  //1 in 10 chance to show the div
    var rand = Math.floor(Math.random()*chance)+1;  //generate random number 1-chance
    if(rand == 1) //show the number
    {
        $('#someId').css('opacity', 1);
    }
    else
    {
        $('#someId').css('opacity', 0);
    }
}

Вы можете настроить время и шанс определить, как часто отображается идентификатор.

1 голос
/ 17 октября 2011

что-то вроде:

var d = new Date();
if (d.getTime() % 3 ==0) 

opacity = 1
else 0;
0 голосов
/ 17 октября 2011

Конечно, это

<script>
  var sets = {
  minsec: 1,
  maxsec: 10
  };

  var t=setTimeout("showthediv()", (Math.floor(Math.random()*(sets.maxsec - sets.minsec)) + sets.minsec)*1000);

  function showthediv()
  {
      if ($('#element').queue().length == 0)
      {
          $('#element').fadeTo('slow',1);
      }
      var x=setTimeout("showthediv()",(Math.floor(Math.random()*(sets.maxsec - sets.minsec)) + sets.minsec)*1000);
  }
</script>

Изменить: сделал его настраиваемым для таймфрейма, а также добавил проверку, чтобы увидеть, закончилась ли анимация. Настройки в секундах, а не в миллисекундах

...