网页的javascript,下一个上一个图像
我在一个网站上找到了一张用于切换图像的纸条,但我很难让它正常工作。 图像在你到达第四个之前都很好,我加了6个,但是它在那里很糟糕。如果有人能告诉我问题出在哪里,这是代码 谢谢网页的javascript,下一个上一个图像,javascript,jquery,arrays,Javascript,Jquery,Arrays,我在一个网站上找到了一张用于切换图像的纸条,但我很难让它正常工作。 图像在你到达第四个之前都很好,我加了6个,但是它在那里很糟糕。如果有人能告诉我问题出在哪里,这是代码 谢谢 var myImg= new Array(5) myImg[0]= "recientes1"; myImg[1]= "recientes2"; myImg[2]= "recientes3"; myImg[3]= "recientes4"; myImg[4]= "recientes5"; myImg[
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;
var myImg=新数组(5)
myImg[0]=“收件人1”;
myImg[1]=“接收者2”;
myImg[2]=“接收者3”;
myImg[3]=“接收者4”;
myImg[4]=“接收者5”;
myImg[5]=“接收者6”;
myImgSrc=“recientes/”;
myImgEnd=“.jpg”
var i=0;
函数loadImg(){
document.imgSrc.src=myImgSrc+myImg[i]+myImgEnd;
}
函数prev(){
if(i2){
var l=i
}否则{
var l=i+=1;
}
document.imgSrc.src=myImgSrc+myImg[l]+myImgEnd;
}
window.onload=loadImg;
试试这个:
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();
}
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;
}
您可以使用模运算符来非常干净和简单地执行此操作
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
看起来您的数组长度被初始化为5,然后您要添加6个条目 当您定义数组的长度(即
新数组(5)
)时,您的意思是数组中将有5个索引为0、1、2、3和4的条目。您的代码最终将创建一个长度为6的数组,它看起来像您想要的,但认为这是值得注意的,因为如果您尝试查找myImg[myImg.length],它将找不到任何内容
如何调用上一个和下一个函数?浏览器控制台中是否有错误?模数的优先级高于
+
&-
,因此您的代码正在执行i-(1%myImg.length)-1
@TrueBlue Aussie谢谢-修改为适合:)
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;
}