Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 一段时间间隔后图像的变化_Javascript_Jquery - Fatal编程技术网

Javascript 一段时间间隔后图像的变化

Javascript 一段时间间隔后图像的变化,javascript,jquery,Javascript,Jquery,我想写一个javascript函数,在30天内每24小时更改一次背景图像 例如,我有4个图像,分别是image1.jpg、image2.jpg、image3.jpg和image4.jpg 我想在周一展示image1.jpg。然后到了午夜,我想自动切换到image2.jpg等等 我想使用这样一个java脚本函数 function changeImg() { var now = new Date(), hours=now.getHours(), minutes=now.getMinu

我想写一个javascript函数,在30天内每24小时更改一次背景图像

例如,我有4个图像,分别是image1.jpg、image2.jpg、image3.jpg和image4.jpg

我想在周一展示image1.jpg。然后到了午夜,我想自动切换到image2.jpg等等

我想使用这样一个java脚本函数

function changeImg() {
var now = new Date(),
    hours=now.getHours(),
    minutes=now.getMinutes(),
    seconds=now.getSeconds(),
    dayD=now.getDate(),
    dayM=now.getMonth()+1,
    datY=now.getFullYear(),
    timer = setTimeout("changeImg()",200);
}

var imgArray =  new imgArr[xyz.png,abc.png,........,30.png]
现在我的问题是如何在24小时后自动更改图像。如果我使用for循环来增加计数器以更改图像,它将工作。这是正确的方法吗?如果我用这种方法,计时器将保持先前的计数器值


我希望每天早上9:00背景图像会发生变化。

我建议设置一个不超过每分钟的超时时间。 在超时中,检查日期,如果已更改,则从列表中获取图像,然后将新url写入文档中的适当位置。 在超时结束时,始终启动下一个超时。
不需要for循环。

这应该是服务器端任务。但是,如果您必须使用JavaScript,那么

将其放在页面的部分或作为外部脚本文件

<script>

function render_image() {
    var images = [
        '00001.jpg',
        '00002.jpg',
        '00003.jpg',
        '00004.jpg',
        '00005.jpg',
        '00006.jpg',        
    ]

    // define the start date (alter this)
    var first = new Date("2011-09-03");

    // which image
    var src = images[
       // count days since start (int)
       (((new Date().getTime() - first.getTime())
         / 86400 / 1000) | 0)
       % images.length
    ];

    // create image element
    var im = document.createElement('img');
    im.src = src;

    // return code
    var di = document.createElement('div');
    di.appendChild(im);
    return di.innerHTML;
}

</script>

函数render_image(){
变量图像=[
“00001.jpg”,
“00002.jpg”,
“00003.jpg”,
“00004.jpg”,
“00005.jpg”,
“00006.jpg”,
]
//定义开始日期(更改此日期)
var first=新日期(“2011-09-03”);
//哪个形象
var src=图像[
//从开始算起的天数(整数)
((新日期().getTime()-first.getTime())
/ 86400 / 1000) | 0)
%图像长度
];
//创建图像元素
var im=document.createElement('img');
im.src=src;
//返回码
var di=document.createElement('div');
di.儿童(im);
返回di.innerHTML;
}
将其放在html页面中希望图像显示的位置

<script> document.write(render_image()); </script>
document.write(render_image());

您是否希望您的用户在不关闭浏览器的情况下在您的页面上停留一周?这应该是一项服务器端任务。显然不是,这就是为什么我要询问如何实现的想法。@saorabh,这将取决于您使用的服务器端语言,因为这项任务应该在服务器上完成,而不是使用javascript。@Darin感谢我也这么想,但现在请发帖子确认,我们将尝试使用服务器端语言完成这项任务。有人能解释一下这部分的逻辑吗?“/86400/1000)| 0”。86400我知道这是一天中的秒数,但是1000和0呢?1000,因为值是毫秒而不是秒。
|0
会截断与Math.floor()类似的值。这不是很简单,所以请仔细阅读。