Как сделать слайд-шоу повторить с помощью JavaScript - PullRequest
0 голосов
/ 29 октября 2010

хорошо, мое слайд-шоу - это фон моего тела, а изображения в тегах img вот так

 <img name="pic" src="../../Content/images/bg.jpg" style="  width: 100%; position: absolute; top: 0; left: 0; z-index: -1;width: expression(document.body.clientWidth + 'px');   " alt=""/>

моя проблема в том, что он воспроизводится, но затем останавливается на последнем изображении, а не непрерывно

также, как мне реализовать кнопку Stop Play prev next в верхней части страницы, которая также управляет фоном я не хочу загружать никаких плагинов, если это возможно спасибо

вот мой код

  var pause = 3000;

var n = 0;

var imgs = new Array("bg.jpg", "bg2.jpg", "bg3.jpg", "bg4.jpg", "bg5.jpg", "bg6.jpg", "bg7.jpg", "bg8.jpg", "bg9.jpg", "bg10.jpg", "bg11.jpg");


var preload = new Array();
for (var i = 1; i < imgs.length; i++ ) {
    preload[i] = new Image();
    preload[i].src = imgs[i];
}

var inc = -1

function rotate() {

    document.images.pic.src = imgs[n];
    (n == (imgs.length - 1)) ? n = 0 : n++;
    setTimeout("rotate(0)", pause);
}

Ответы [ 2 ]

0 голосов
/ 06 августа 2013

Попробуйте структурировать ваш код следующим образом:

var i, imgs, pic;

function rotate()
{
  pic.src = imgs[i] ;
  (i === (imgs.length -1) ) ? i=0 : i++ ;
  setTimeout( rotate, 5000 ); 
}

function init()
{
  pic = document.getElementById("pic");

  imgs = ["bg.jpg", "bg2.jpg", "bg3.jpg"] ;

  var preload= new Array();
  for( i=0; i< imgs.length; i++ )
  {
    preload[ i ] = new Image();
    preload[ i ].src = imgs[ i ];
  }

  i=0;

  rotate();
}
onload=init;

И на вашей HTML-странице вы можете получить что-то вроде этого:

<img id="pic" width="960" height="300" alt="Icon" src="bg1.jpg">
0 голосов
/ 29 октября 2010

Возможно это?

n = ( n==imgs.length-1 ? 0 : n+1);
...