JavaScript倒计时弹出窗口
我试图在2秒不活动后创建一个包含javascript计时器弹出窗口的JavaScript倒计时弹出窗口,javascript,html,function,timer,addeventlistener,Javascript,Html,Function,Timer,Addeventlistener,我试图在2秒不活动后创建一个包含javascript计时器弹出窗口的div,然后在再次有活动时消失 我想我就快到了,我已经用我的一些代码创建了一个 活动和非活动事件工作(即弹出和隐藏)-我只是不知道如何使倒计时显示在div中。理想情况下,当计时器达到0时,窗口将被重定向到google.com var div = document.createElement("div"); div.id = "timer"; div.style.display = "none"; div.style.width
div
,然后在再次有活动时消失
我想我就快到了,我已经用我的一些代码创建了一个
活动和非活动事件工作(即弹出和隐藏)-我只是不知道如何使倒计时显示在div
中。理想情况下,当计时器达到0时,窗口将被重定向到google.com
var div = document.createElement("div");
div.id = "timer";
div.style.display = "none";
div.style.width = "200px";
div.style.height = "200px";
div.style.background = "red";
div.style.color = "white";
div.style.position = "fixed";
div.style.top = "80%";
div.style.left = "50%";
document.body.appendChild(div);
var timeoutID;
var idleTimeout = 5;
var idleSecondsTimer = null;
var idleSecondsCounter = 0;
function setup() {
this.addEventListener("mousemove", resetTimer, false);
this.addEventListener("mousedown", resetTimer, false);
this.addEventListener("keypress", resetTimer, false);
this.addEventListener("DOMMouseScroll", resetTimer, false);
this.addEventListener("mousewheel", resetTimer, false);
this.addEventListener("touchmove", resetTimer, false);
this.addEventListener("MSPointerMove", resetTimer, false);
startTimer();
}
setup();
function startTimer() {
// wait 2 seconds before calling goInactive
timeoutID = window.setTimeout(goInactive, 2000);
}
function resetTimer(e) {
window.clearTimeout(timeoutID);
goActive();
}
function goInactive() {
div.style.display = "block";
div.innerHTML = "Inactivity detected. Redirecting in ..." + (idleTimeout - idleSecondsCounter) + " ...please touch screen to close this message";
// show a count down here then redirect to google.com
}
function goActive() {
div.style.display = "none";
startTimer();
}
我一直在跟随,这在很大程度上帮助了我。非常感谢您的帮助。下面是带重定向的倒计时的实现 我刚刚添加了一个setInterval函数,每秒钟调用一次,以减少倒计时或重定向页面。此外,此计时器在
resetTimer
功能中被清除。显示的数字使用ID元素更新,使用document.getElementById(“倒计时”).innerHTML
var div = document.createElement("div");
div.id = "timer";
div.style.display = "none";
div.style.width = "200px";
div.style.height = "200px";
div.style.background = "red";
div.style.color = "white";
div.style.position = "fixed";
div.style.top = "80%";
div.style.left = "50%";
document.body.appendChild(div);
var timeoutID;
var timerID;
var idleTimeout = 5;
var idleSecondsTimer = null;
var idleSecondsCounter = 0;
function setup() {
this.addEventListener("mousemove", resetTimer, false);
this.addEventListener("mousedown", resetTimer, false);
this.addEventListener("keypress", resetTimer, false);
this.addEventListener("DOMMouseScroll", resetTimer, false);
this.addEventListener("mousewheel", resetTimer, false);
this.addEventListener("touchmove", resetTimer, false);
this.addEventListener("MSPointerMove", resetTimer, false);
startTimer();
}
setup();
function startTimer() {
// wait 2 seconds before calling goInactive
timeoutID = setTimeout(goInactive, 2000);
}
function resetTimer(e) {
clearTimeout(timeoutID);
clearTimeout(timerID);
goActive();
}
function goInactive() {
idleSecondsCounter = 0;
div.style.display = "block";
div.innerHTML = "Inactivity detected. Redirecting in ...<span id='countdown'>" + (idleTimeout - idleSecondsCounter) + "</span> ...please touch screen to close this message";
// show a count down here then redirect to google.com
timerID = setInterval(function(){
idleSecondsCounter++;
if(idleSecondsCounter >= 6) {
clearTimeout(timerID);
window.location.href = "http://google.com";
} else {
document.getElementById("countdown").innerHTML = (idleTimeout - idleSecondsCounter);
}
}, 1000);
}
function goActive() {
div.style.display = "none";
startTimer();
}
var div=document.createElement(“div”);
div.id=“计时器”;
div.style.display=“无”;
div.style.width=“200px”;
div.style.height=“200px”;
div.style.background=“红色”;
div.style.color=“白色”;
div.style.position=“固定”;
div.style.top=“80%”;
div.style.left=“50%”;
文件.正文.附件(div);
var-timeoutID;
var-timerID;
var idleTimeout=5;
var idleSecondsTimer=null;
var idleSecondsCenter=0;
函数设置(){
addEventListener(“mousemove”,resetTimer,false);
这个.addEventListener(“mousedown”,resetTimer,false);
此.addEventListener(“按键”,重置计时器,错误);
这个.addEventListener(“DOMMouseScroll”,resetTimer,false);
此.addEventListener(“鼠标滚轮”,重置计时器,false);
此.addEventListener(“touchmove”,resetTimer,false);
此.addEventListener(“MSPointerMove”,resetTimer,false);
startTimer();
}
设置();
函数startTimer(){
//请等待2秒钟后再调用goInactive
timeoutID=设置超时(goInactive,2000);
}
功能重置计时器(e){
clearTimeout(timeoutID);
清除超时(timerID);
目的性();
}
函数goInactive(){
IDLESecondsCenter=0;
div.style.display=“块”;
div.innerHTML=“检测到不活动。重定向到…”+(idleTimeout-idleSecondsCenter)+“…请触摸屏幕关闭此消息”;
//在此处显示倒计时,然后重定向到google.com
timerID=setInterval(函数(){
idleSecondsCenter++;
如果(IDLESecondsCenter>=6){
清除超时(timerID);
window.location.href=”http://google.com";
}否则{
document.getElementById(“倒计时”).innerHTML=(idleTimeout-idleSecondsCenter);
}
}, 1000);
}
函数goActive(){
div.style.display=“无”;
startTimer();
}
您只需启动一个setInterval来更新div消息,直到您需要查看下面的代码片段为止
PS:当您在goActive方法中处于活动状态时,您需要向clearInterval添加代码,以便下次它将再次从5开始计数,并且当您的计数器达到0时,它不会变为-1
var div=document.createElement(“div”);
div.id=“计时器”;
div.style.display=“无”;
div.style.width=“200px”;
div.style.height=“200px”;
div.style.background=“红色”;
div.style.color=“白色”;
div.style.position=“固定”;
div.style.top=“80%”;
div.style.left=“50%”;
文件.正文.附件(div);
var-timeoutID;
var idleTimeout=5;
var idleSecondsTimer=null;
var idleSecondsCenter=0;
函数设置(){
addEventListener(“mousemove”,resetTimer,false);
这个.addEventListener(“mousedown”,resetTimer,false);
此.addEventListener(“按键”,重置计时器,错误);
这个.addEventListener(“DOMMouseScroll”,resetTimer,false);
此.addEventListener(“鼠标滚轮”,重置计时器,false);
此.addEventListener(“touchmove”,resetTimer,false);
此.addEventListener(“MSPointerMove”,resetTimer,false);
startTimer();
}
设置();
函数startTimer(){
//请等待2秒钟后再调用goInactive
timeoutID=window.setTimeout(goInactive,2000);
}
功能重置计时器(e){
clearTimeout(timeoutID);
目的性();
}
函数goInactive(){
div.style.display=“块”;
div.innerHTML=“检测到不活动。重定向到…”+(idleTimeout-idleSecondsCenter)+“…请触摸屏幕关闭此消息”;
//在此处显示倒计时,然后重定向到google.com
idleSecondsTimer=setInterval(函数(){
idleSecondsCenter++;
div.innerHTML=“检测到不活动。重定向到…”+(idleTimeout-idleSecondsCenter)+“…请触摸屏幕关闭此消息”;
如果(idleTimeout-IdleSecondSconter==0){
清除间隔(idleSecondsTimer);
location.href=http://www.google.com';
}
},1000);
}
函数goActive(){
div.style.display=“无”;
startTimer();
if(idleSecondsTimer){
IDLESecondsCenter=0;
清除间隔(idleSecondsTimer);
}
}
佩伦特式居住者morbi tristique Sentecus et netus et malesuada是一个著名的土耳其人。前庭侵权人、世仇、别有用心者、临时诉讼人、担保人。不要让你的自由人坐在那里。我的生命是永恒的。莫里斯·普莱斯特拉特·埃利芬德·利奥。他是一个聪明的人。威斯康辛州的前庭、调味品、康茂德维塔、奥纳雷西特、威斯康辛州。埃涅亚发酵液、精粹葡萄汁调味品、红莓汁、豆豉箭叶。在turpis枕面部进行非enim治疗。乌特·费利斯。事实上,这是一个错误,是一个错误,是一个错误,是一个错误。阿利奎姆·埃拉特·帕特。Nam dui mi、tincidunt quis、accumsan porttitor、facilisis luctus、metus
佩伦特式居住者morbi tristique Sentecus et netus et malesuada以turpis egestas闻名。福贾码头前庭