Javascript网页,下一张图片
javascript for web page, next-prev image
我找到了一个在网站上切换图像的脚本,我有问题,使其工作。图像切换得很好,直到你到达第四个,我加了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;
试试这个:
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();
}
<小提琴演示/strong>
<Additionnal信息/strong>
i=(i>=myImg.length-1)?0:i+1;
可译为
if( i >= myImg.length-1 ){ i = 0; }
else{ i = i+1; }
next()函数中的if块似乎阻止了它继续进行(它到达了列表的末尾)。你应该把这个从2改成myImg。长度- 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;
}
看起来你的数组长度初始化为5,然后你添加了6个条目。
当你定义数组的长度时(例如new Array(5)
),你说数组中将有5个条目,索引为0,1,2,3,&4. 你的代码最终会创建一个长度为6的数组,看起来像你想要的,但认为这是值得注意的,因为如果你试图找到myImg[myImg。
你的prev和next函数是如何被调用的?
您可以使用模数运算符来非常干净和简单地完成此操作…
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
有关模数(余)运算符
相关文章:
- 有人能提供一张ember数据与broswer's的持久层
- jQuery只隐藏<tr>在一张桌子上
- 如何从三张图片中选择一张?其余的必须是看不见的
- 通过onclick事件将一张图片更改为6张图片
- Sequelize hasMany浏览另一张表
- jm按下停止步骤进入滚动的下一张幻灯片
- 我用JavaScript FIleReader读了一张图片,但是我无法得到图片的信息
- 当 Flickity 到达下一张或上一张幻灯片时的事件
- 单击从一张图像切换到两张图像,然后再切换回一张图像
- 单击另一张图像,显示一张图像几秒钟
- 为什么bxSlider会打断我在最后一张幻灯片和第一张幻灯片之间的转换
- 用d3和topojson绘制一张地图
- 引导程序3转盘-随机选择下一张幻灯片
- 每张图片都比前一张少
- HTML5画布如何在另一张图片上绘制一张图片
- 拍摄一张巨大的网页截图(大小超过1350x13500px)
- 如何在最后一张幻灯片上停止动画
- 完整的背景图片幻灯片jquery,想让幻灯片的最后一张图片可以点击
- jqplot只在一张图表上显示荧光笔
- Javascript网页,下一张图片