Я делаю изображение слайд-шоу в JavaScript:
функция ImageLoop (изображения, скорость, ширина, высота, вкл.) {
this.img = images;
this.speed = speed;
this.width = width;
this.height = height;
this.interval = false;
this.play = false;
if (inc > this.img.length-1){
this.index = this.img.length-1;
} else {
this.index = inc;
}
this.returned = false;
function preloadImages(){
for (i in this.img){
var _i = new Image();
i.src = this.img[i];
}
}
preloadImages();
thisObj = this;
function onInterval( ){
thisObj.next();
}
function set(index) {
var im = document.getElementById("imageloop");
if (index > this.img.length-1){
var idx = this.img.length-1;
} else {
var idx = index;
}
im.src = this.img[idx];
}
function next( ){
if (this.play){
if (next == this.img.length-1){
this.returned = false;
}
if ((this.index == this.img.length-1) && !this.returned){
this.returned = true;
return;
}
var next = (this.index < this.img.length-1) ? ++this.index : 0;
this.set(next);
}
}
function start( ){
this.play = true;
if (!this.interval){
this.interval = setInterval(onInterval, this.speed);
}
}
function stop( ){
this.play = false;
if (this.interval){
clearInterval(this.interval);
this.interval = false;
}
}
function changeSpeed( adjust ){
this.speed += adjust;
clearInterval(this.interval);
this.interval = setInterval(onInterval, this.speed);
}
function serendre( place ) {
switch (place){
case "beginning":
this.stop();
this.set(0);
break;
case "left":
this.stop();
var next = (this.index > 0) ? --this.index : this.img.length-1;
this.set(next);
break;
case "right":
this.stop();
var next = (this.index < this.img.length-1) ? ++this.index : 0;
this.set(next);
break;
case "end":
this.stop();
this.set(this.img.length-1);
break;
}
}
// Setup
var d = document.getElementById("il");
var image = "<img src='" + this.img[this.index] + "' id='imageloop' width='" + this.width + "' height='" + this.height + "' />";
d.innerHTML = image;
// Add Functions
this.preloadImages = preloadImages;
this.set = set;
this.next = next;
this.start = start;
this.stop = stop;
this.changeSpeed = changeSpeed;
this.serendre = serendre;
}
В IE работает нормально, но на других у меня проблема. Например, когда я устанавливаю индекс на другое число и запускаю его, т. Е. Работаю, но на другом он начинается с индекса 0. Я не знаю, в чем проблема. Может ли кто-нибудь помочь мне с этим?