每天更改背景

时间:2014-08-23 22:22:56

标签: javascript html css

我知道这可能很容易,但我在JS中并不是那么好。 我有5张图片,我希望身体背景每天都是其中之一。

我试过这个:

<html>
<head>
<style>
#daily {
width:100%;
height:100%;
}
</style>
<script>
var backImg = ['http://example.com/path/image.gif', 'http://example.com/path/image1.gif', 'http://example.com/path/image2.gif', 'http://example.com/path/image3.gif' , 'http://example.com/path/image4.gif'];
var today = new Date();
var day = today.getDate();
document.getElementById('daily').style.backgroundImage = 'url('+backImg[--day]+')';
</script>
<body>
<div id="daily">
<p>some text</p>
</div>
</body>

但是,不幸的是它不起作用。 有没有其他方法可以做到这一点? 请帮助,谢谢

2 个答案:

答案 0 :(得分:2)

由于您只有五张图片且日期可能超过5张,因此您需要使用剩余的值而不是日期。在您的代码中,将backImg[--day]替换为backImg[day % backImg.length]

此外,您需要将您的功能放在onload事件中或页面底部。 e.g。

window.onload = function(){ 
// your code here
}

答案 1 :(得分:1)

如果您希望每天都有新图像,则应使用自纪元以来的天数作为计算的基础。然后使用modulo 5:

<script>
var backImg = ['http://example.com/path/image.gif', ..];
var today = new Date();
var day = Math.floor(today/8.64e7);
document.getElementById('daily').style.backgroundImage = 'url('+backImg[day%5]+')';
</script>

编辑:我除以8.64e7(8.64 * 10 ^ 7),这是每天的毫秒数。