我正在做一个简单的脚本来检测12点钟的时间,是否显示了某个div,如果不是,则保持隐藏。所以总体思路是这样的:
function displayDiv() {
d = new Date();
if(12 === d.getHours()){
idMain.style.display = 'block';
} else {
idMain.style.display = 'none';
}
}
但是我希望在事件侦听器中使用它,因此在该小时时,它会自动显示div或将其隐藏。像这样:
document.addEventListener(d.getHour() === 12, displayDiv);
或者类似的东西,但我不知道如何建立参数以获得所需的响应或使其起作用。
谢谢
答案 0 :(得分:5)
您可以使用setInterval
每分钟(60000毫秒)运行该功能。
function displayDiv() {
d = new Date();
if(12 === d.getHours()){
idMain.style.display = 'block';
} else {
idMain.style.display = 'none';
}
}
setInterval(displayDiv, 60000);
答案 1 :(得分:1)
我完全同意使用setInterval
的Hev1解决方案(使用他的实现)。不过,这里有一些其他信息:
setInterval接受2个参数。第一个参数是您要在特定时间间隔执行的回调函数。第二个参数是您希望函数执行的毫秒数。
我还要指出,如果您需要清除间隔,则还有一个用于此调用clearInterval
的函数。为此,您必须将时间间隔存储在变量中,这是一个示例:
const myInterval = setInterval(increase, 1000);
let index = 5;
function increase() {
if (index === 0) {
clear();
} else {
console.log(index);
index--;
}
}
function clear() {
clearInterval(myInterval);
console.log('interval cleared');
}
将间隔存储在变量中之后,当间隔达到0时,将调用clear()
方法。在清除函数clearInterval
中将调用该函数以删除间隔。
答案 2 :(得分:0)
我们可以使用以下当前时间值来设置if条件。 var date = new Date(); var hours = dates.getHours(); var分钟= dates.getMinutes();