单击更改背景图像

时间:2012-12-04 13:20:59

标签: javascript

我有一个id为“art”的div。这个div应该有背景“S1_img1.jpg”。在div下面有一个按钮,当我点击它时,背景图像必须改为“S1_img2.jpg”。

当我再次点击它时,它必须改为“S1_img3.jpg”,它会继续这样。但是,img4是最后一个。当div背景当前设置为img4并且再次单击该按钮时,它必须更改回img1。

我试图通过使用javascript来实现这一点,但我无法让它工作。

1)当我使用下面的代码时,即使我确定图像路径正确,图像也不会显示为背景。

<script type="text/javascript">
document.getElementById("art").style.backgroundImage = "url(content/art/S1/S1_img1.jpg)";</script>

2)如何点击我所描述的按钮时,如何改变背景呢?

此时按钮的onClick执行javascript函数“count();”。

<script type="text/javascript">
var img = 1;

function count() {
    img = img + 1;
    document.getElementById("content").style.backgroundImage = "url(content/art/S3/S3_img1.jpg)";
}
</script>

2 个答案:

答案 0 :(得分:0)

您可以使用该条件

<script type="text/javascript">
var img = 1;

function count() {
img = img + 1;
document.getElementById("content").style.backgroundImage = "url(content/art/S3/S3_img"+img+".jpg)";
if (img==4) img=0;
}
</script>

答案 1 :(得分:0)

如果您使用HTML5,则可以使用自定义属性(请参阅this answer)。它比使用全局变量更好,这样你就可以管理多个元素的背景。

<div style="background-image:url(content/art/S1/S1_img1.jpg);cursor:pointer"
     onclick="toggleBackgroundImage(this)">a</div>

<script type="text/javascript">
function toggleBackgroundImage(element) {
    var idbgrank = parseInt(element.getAttribute("data-idbgrank"));
    idbgrank = idbgrank ? idbgrank + 1 : 2;
    element.setAttribute("data-idbgrank", idbgrank)
    if (idbgrank > 4) return;
    element.style.backgroundImage = "url(content/art/S1/S1_img" + idbgrank + ".jpg)";
    alert(element.style.backgroundImage); //remove it ;)
}
</script>

请参阅小提琴:http://jsfiddle.net/g40hL0jc/3/

(通过alert()调用可以看到结果,您只需将其删除)。