javascript背景图像更改使用数组

时间:2014-09-20 10:12:05

标签: javascript arrays

我不是经验丰富的javascript程序员所以我尝试使用javascript。我想通过点击一个按钮来制作幻灯片。函数我试图用数组创建一个函数,该数组包含所有图像的名称,并根据数组的索引更改背景图像。我只做了这部分功能而且我不知道是什么问题。



function change(lol){
	var img = ["veni1.jpg", "veni2.jpg", "veni3"];
    var middle = document.getElementById("vvvmiddle");
    var index = img.indexOf(middle.style.backgroundImage);
  
	if(change === "right"){
		var current = index + 1;
		middle.style.backgroundImage = img[current];
	}
}

middle {
    width:1262px;
    height:550px;
    background-color: white;
    margin-left: -7px;
}
#vvvmiddle {
    width:700;
    height:400;
    background-image:url('veni1.jpg');
    margin: 20px 0px 0px 310px;
    float:left;
}
#sipka {
    width:40;
    height:40;
    border-radius: 100px;
    background-color: #DCDCDC;
    float:right;
    margin: 450px 410px 0px 0px;
}
#sipkatext {
    font-family: Impact;
    color: white;
    font-size: 30px;
    padding-left: 10px;
    padding-top: 1px;
}
#sipkaurl {
    text-decoration: none;
}
#sipka:hover {
    background-color: #3399FF;
}
#sipka2:hover {
    background-color: #3399FF;
}
#sipka2 {
    width:40;
    height:40;
    border-radius: 100px;
    background-color: #DCDCDC;
    float:right;
    margin: 450px -100px 0px 0px;
}
#sipkatext2 {
    font-family: Impact;
    color: white;
    font-size: 30px;
    padding-left: 13px;
    padding-top: 1px;
}

<div id="middle">
    <div id="vvvmiddle">
        <div id="sipka" onclick="change('left')">
            <div id="sipkatext">
                <</div>
            </div>
            <div id="sipka2" onclick="change('right')">
                <div id="sipkatext2">></div>
            </div>
        </div>
    </div>
&#13;
&#13;
&#13;

3 个答案:

答案 0 :(得分:0)

您正在检查条件中的错误变量,它应该是lol,而不是change

if(lol === "right"){
    var current = index + 1;
    middle.style.backgroundImage = img[current];
}

此外,您应该像Nicolas建议的那样处理“最后一张图片”案例。

答案 1 :(得分:0)

您可以尝试:

function change(lol) {
    var img = ["veni1.jpg", "veni2.jpg", "veni3"];
    var middle = document.getElementById("vvvmiddle");
    var index = img.indexOf(middle.style.backgroundImage);

    if(lol === "right"){
        index = (index + 1) % img.length;
    } else {
        index = (index + img.length - 1) % img.length;
    }
    middle.style.backgroundImage = img[index];
}

答案 2 :(得分:0)

可能的解决方案可能就是:

var img = ["img1.png", "img2.png", "img3.png"];
var len = img.length;
var url = 'Some url...';
var current=0;

var middle = document.getElementById("vvvmiddle");
middle.style.backgroundImage = "url(" + url + img[current] + ")";

function change(dir){
    if(dir == "right" && current < len-1){
        current++;
        middle.style.backgroundImage = "url(" + url + img[current] + ")";
    } else if(dir == "left" && current > 0){
        current--;
        middle.style.backgroundImage = "url(" + url + img[current] + ")";
    }
}

请参阅此处jsfiddle