Я использовал эту очень простую функцию. Он не использует никаких фреймворков и не исчезает между слайдами, но он должен помочь вам начать работу.
function SlideShow( elem_id, hold_time )
{
this.elem = document.getElementById( elem_id );
this.slides = [];
this.num_slides = 0;
this.cur_slide = 1;
this.add_slide = function( image )
{
this.slides[ this.num_slides++ ] = image;
}
var self = this;
this.next_slide = function()
{
if ( self.num_slides > 1 )
{
self.elem.src = self.slides[ self.cur_slide++ ].src;
if ( self.cur_slide == self.num_slides )
self.cur_slide = 0;
}
}
setInterval( self.next_slide, hold_time )
}
параметры - это element_id тега img и количество мс для отображения каждого слайда.
функция add_slide принимает объект JavaScript Image.
Причина, по которой cur_slide инициализируется значением 1, заключается в том, что я предварительно загружаю тег img первым изображением.
В моем приложении я создаю слайд-шоу в методе window.onload и организую добавление каждого изображения в слайд-шоу по мере его загрузки.
Пример (не проверено):
window.onload = function() {
var slide_show = new SlideShow( "slide_image", 4000 )
{ var img = new Image();
img.onload = function(){ slide_show.add_slide(img); };
img.src="/images/slide1.jpg"; }
...
/* Repeated for each image */
}
Этот подход действителен, только если вы не заботитесь о порядке слайдов.