我找到了一个用于在网站上切换图像的脚本,我遇到了问题,无法使其正常工作。 图像开关很好,直到你到达第四,我加了6,但它卡在那里。如果有人可以告诉我问题在哪里,这是代码。
谢谢!
var myImg= new Array(5)
myImg[0]= "recientes1";
myImg[1]= "recientes2";
myImg[2]= "recientes3";
myImg[3]= "recientes4";
myImg[4]= "recientes5";
myImg[5]= "recientes6";
myImgSrc = "recientes/";
myImgEnd = ".jpg"
var i = 0;
function loadImg(){
document.imgSrc.src = myImgSrc + myImg[i] + myImgEnd;
}
function prev(){
if(i<1){
var l = i
} else {
var l = i-=1;
}
document.imgSrc.src = myImgSrc + myImg[l] + myImgEnd;
}
function next(){
if(i>2){
var l = i
} else {
var l = i+=1;
}
document.imgSrc.src = myImgSrc + myImg[l] + myImgEnd;
}
window.onload=loadImg;
答案 0 :(得分:0)
试试这个:
var myImg= new Array(5)
myImg[0]= "recientes1";
myImg[1]= "recientes2";
myImg[2]= "recientes3";
myImg[3]= "recientes4";
myImg[4]= "recientes5";
myImg[5]= "recientes6";
myImgSrc = "recientes/";
myImgEnd = ".jpg";
var i = 0;
loadImg();
function loadImg(){
document.imgSrc.src = myImgSrc + myImg[i] + myImgEnd;
}
function prev(){
i=(i<=0)?myImg.length-1:i-1;
loadImg();
}
function next(){
i=(i>=myImg.length-1)?0:i+1;
loadImg();
}
其他信息
i=(i>=myImg.length-1)?0:i+1;
可翻译为
if( i >= myImg.length-1 ){ i = 0; }
else{ i = i+1; }
答案 1 :(得分:0)
next()函数中的if块似乎阻止它继续进行(它到达列表的末尾)。您应该将其从2更改为类似myImg.length - 1的内容,以确保它不会超出您拥有的图像数量。
function next(){
if(i>myImg.length-1){
var l = i
} else {
var l = i+=1;
}
document.imgSrc.src = myImgSrc + myImg[l] + myImgEnd;
}
如果希望next()函数在结束时转到列表的开头,则必须修改next()函数以将i重置为零。像这样:
function next(){
if(i>myImg.length-1){
i = 0;
var l = i;
} else {
var l = i+=1;
}
document.imgSrc.src = myImgSrc + myImg[l] + myImgEnd;
}
答案 2 :(得分:0)
您可以使用模数运算符非常简洁地执行此操作...
function prev(){
i = (i - 1) % myImg.length - 1;
document.imgSrc.src = myImgSrc + myImg[i] + myImgEnd;
}
function next(){
i = (i + 1) % myImg.length - 1;
document.imgSrc.src = myImgSrc + myImg[l] + myImgEnd;
}
%
基本上使传递给它的数字必须介于0和之后的数字之间。因此,对于长度为6的数组,它只允许0到5之间的数字。-1变为5,6变为0。
<强> See here for more information on the modulus (remainder) operator 强>
答案 3 :(得分:0)
看起来您的数组长度初始化为5,然后您添加了6个条目。
当您定义数组的长度(即new Array(5)
)时,您说数组中将有5个条目的索引为0,1,2,3和&amp; 4.你的代码最终将创建一个长度为6的数组,看起来像你想要的,但是认为值得注意,因为如果你试图找到myImg [myImg.length]它将找不到任何东西。
你的上一个和下一个函数如何被调用?