如何使用javascript重复播放幻灯片

时间:2010-10-29 11:53:18

标签: javascript slideshow

好的,我的幻灯片是我的身体背景,imgs是这样的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=""/>

我的问题是它播放但后来停在最后一张图片而不是连续

我还将如何在页面顶部实现一个停止播放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 :(得分:0)

可能是这个?

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

答案 1 :(得分:0)

尝试像这样构建代码:

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">