setattribute запускается один раз в функции setinterval - PullRequest
0 голосов
/ 27 мая 2020

я пытаюсь показывать случайное изображение каждые 1 сек. c это изображение внутри div без атрибута sr c:

<div class="D">

<img>   

</div>

вот код css:

 .D{

  height: 30%;
  width: 30%;
  left: 35%;
  top: 10%;
  position: absolute;

  }
  .D img{

  position: absolute;
  height: 100%;
  width: 100%;

  }

У меня есть массив, который содержит sr c из 4 разных изображений из папки и с Math random im, выбирая случайное число от 0 до 3 в качестве индекса массива и повторяю функцию с setinterval :

var inp = document.querySelector('.D');
var p = document.querySelector('.D img');
var Src= ['Imgs/home.png','Imgs/gps.png','Imgs/bell.png','Imgs/box.png'];
var RndomFrom0To3 = Math.floor(Math.random()*4);


function ChangeImgSrc() {

p.setAttribute('src',Src[RndomFrom0To3]);


};


setInterval(ChangeImgSrc,1000);

sr c меняется только один раз и останавливается на том же изображении, что я делаю не так?

1 Ответ

0 голосов
/ 27 мая 2020

Вы должны также вызывать случайный генератор при каждом вызове

function ChangeImgSrc() {
    var RndomFrom0To3 = Math.floor(Math.random()*4);
    p.setAttribute('src',Src[RndomFrom0To3]);


    };
...