根据一天中的时间更改图像
Change an image based on the time of day
我正在开发一个网站,该网站包含许多随时间变化的元素。我想根据一天中的时间更改图像,一张图像用于白天,一张用于晚上,所以:
日图像=8:30–00:00
夜间图像=00:00–8:30
我在Stackoverflow上看到了这个例子,但我不确定这是否准确到我的浏览器时间(图像更改应该基于我的时间,而不是用户)。
这是一个例子:
$( document ).ready(function() {
SetImage();
window.setInterval(SetImage,1000);
});
function SetImage(){
var nowdate = new Date() ;
var waketime = new Date();
waketime.setHours(6);
waketime.setMinutes(30);
var bedtime = new Date();
bedtime.setHours(18);
bedtime.setMinutes(30);
if(waketime < nowdate && nowdate < bedtime){
$('#day').show();
$('#night').hide();
}else{
$('#night').show();
$('#day').hide();
}
}
<img id="night" src="http://1.bp.blogspot.com/_7-b4ZWNPaD8/TThuPK0cvUI/AAAAAAAAAAQ/jCqRshKkJd4/s1600/night-scene.jpg">
<img id="day" src="http://media1.santabanta.com/full1/Events/Independence%20Day/independence-day-67a.jpg">
有什么想法吗?任何帮助都将是美妙的。谢谢:-)
在服务器端检查时间,并根据时间将夜间或白天添加到主体(作为类或数据属性)
此外,如果用户没有重新加载,您可以运行脚本并对其进行更新。
window.setInterval(SetImage,5000); /* set this to at least 10 min */
function SetImage(){
var nowdate = new Date();
var waketime = new Date();
waketime.setHours(6);
waketime.setMinutes(30);
var bedtime = new Date();
bedtime.setHours(18);
bedtime.setMinutes(30);
if(waketime < nowdate && nowdate < bedtime) {
document.body.setAttribute('data-daytime','');
}else{
document.body.setAttribute('data-nighttime','');
}
}
.toggletime {
padding: 10px;
background: #eee;
color: #333;
}
body[data-nighttime] .toggletime {
padding: 10px;
background: #333;
color: #eee;
}
<body data-daytime>
<div class="toggletime">
Hey there
</div>
</body>
客户端时间:
如果你谈论的是客户时间,那很好。但我建议将使用的间隔时间改为10分钟或更长时间。
服务器时间:
但是,如果你谈论的是服务器时间,响应将是否定的。你必须通过php、java、node等后端代码来打发服务器的时间或者,您可以使用给定时间的api,如下所示:
<script type="text/javascript">
function myCallback(json) {
alert(new Date(json.dateString));
}
</script>
<script type="text/javascript" src="http://timeapi.org/utc/after+one+hour.json?callback=myCallback"></script>
只有当您使用JSONP时,这才有效。我们所做的是请求这个url,其中包含您的服务器(在阿姆斯特丹)的时间:http://www.timeapi.org/utc/after+一小时以上
相关文章:
- 如何在设定的时间间隔内一次只显示一个图像
- 打开和关闭的图像交换未在正确的时间更改
- JS-在一段时间后水平移动图像
- JS-移动图像,暂停设置的时间,然后将图像向后移动
- 在一定时间内自动减小图像大小
- Javascript和图像更改,基于一天中的时间
- 在有限的时间内暂时禁用元素/图像的实时点击
- 获取时间将图像从服务器加载到浏览器
- 根据一天中的时间更改图像
- ASP.NET网页-使用脚本显示由预定义日期和时间指定的图像/文本
- Javascript窗口/图像加载时间 - 这应该不起作用,但它确实有效
- 检查是否在一定时间间隔内加载了多个图像;如果没有,则替换为其他 URL
- 在设定的时间间隔后更改图像属性
- 一种在指定时间后更改的背景图像之间添加更平滑过渡的简单方法
- 如何在时间变化时旋转图像
- JQuery:如何使用淡入时间更改图像
- 连接/拼接 Web 图像资源以缩短加载时间
- 如何一个接一个地缓冲图像?[在任何给定时间仅加载 1 个图像]
- 设置时间后刷新随机图像
- 如何使用jQuery在不同时间淡化图像