我的代码有问题,我不明白为什么它不起作用。 我想用两个按钮'avanti / indietro'创建一个照片库,另一个按钮'开始/停止'用于开始自动呈现照片。
var nodoIndietro;
var nodoAvanti;
var nodoFoto;
var nodoStart;
var galleria;
var indiceFoto;
var automatico;
const NUMERO_FOTO = 4;
const RITARDO = 2000;
function gestoreAvanti() {
try {
if (automatico) {
return;
}
cambiaFoto(+1);
} catch(e) {
alert("gestoreAvanti" + e);
}
}
function gestoreIndietro() {
try {
if (automatico) {
return;
}
cambiaFoto(-1);
} catch(e) {
alert("gestoreIndietro" + e);
}
}
function gestoreStartStop() {
try {
if (automatico) {
nodoStart.value = "Start";
automatico = false;
} else {
nodoStart.value = "Stop";
automatico = true;
cambiaFotoInAutomatico();
}
} catch(e) {
alert("gestoreStartStop" + e);
}
}
function cambiaFoto(x) {
try {
indiceFoto += x;
if (indiceFoto == NUMERO_FOTO) {
indiceFoto = 0;
}
if (indiceFoto < 0) {
indiceFoto = NUMERO_FOTO - 1;
}
nodoFoto.setAttribute("src", galleria[indiceFoto]);
} catch(e) {
alert("cambiaFoto" + e);
}
}
function cambiaFotoInAutomatico() {
try {
if (automatico) {
cambiaFoto(+1);
setTimeout(cambiaFotoInAutomatico, RITARDO);
}
} catch(e) {
alert("cambiaFotoInAutomatico" + e);
}
}
function inizializza() {
try {
nodoIndietro = document.getElementById("indietro");
nodoAvanti = document.getElementById("avanti");
nodoFoto = document.getElementById("foto");
nodoStart = document.getElementById("startStop");
nodoAvanti.onclick = gestoreAvanti;
nodoIndietro.onclick = gestoreIndietro;
nodoStart.onclick = gestoreStartStop;
nodoStart.value = "Start";
automatico = false;
galleria = [];
for (var i = 0; i < NUMERO_FOTO; i++) {
var nomeFoto = "foto" + i + ".jpg";
galleria.push(nomeFoto);
}
indiceFoto = 0;
cambiaFoto(0);
} catch(e) {
alert("inizializza" + e);
}
}
window.onload = inizializza;
和HTML:
<body>
<input type="button" id="indietro" value="Indietro">
<img id="foto">
<input type="button" id="avanti" value="Avanti">
<br>
<input type="button" id="startStop">
</body>
</html>
感谢您的回复! :)