html,body{
width:100%;
height:100%;
margin:0;
padding:0;
}
.box{
width:100%;
}
.tc-box{
width:25%;
margin:80px auto;
border:1px solid #f00;
text-align: center;
line-height: 150px;
}
var btn = document.getElementById('btn');
btn.onclick = function(){
var tc = document.getElementById('tc');
tc.style.display = 'none';
}
function xs(){
var tc = document.getElementById('tc');
tc.style.display = 'block';
console.log('aaaaaaa');
}
var lia = window.setInterval(xs,5000);
点击关闭之后5秒就会自动弹出
上面的代码有点不太合理,下面代码优化了一下。
html,body{
width:100%;
height:100%;
margin:0;
padding:0;
}
.box{
width:100%;
}
.tc-box{
width:35%;
margin:80px auto;
border:1px solid #f00;
text-align: center;
line-height: 150px;
}
var btn = document.getElementById('btn');
function xs(){
var tc = document.getElementById('tc');
tc.style.display = 'block';
tc.classList.remove('on');
console.log('aaaaaaa');
}
btn.onclick = function(){
var tc = document.getElementById('tc');
tc.style.display = 'none';
var lia = window.setInterval('xs()',5000);
tc.classList.add('on'); //添加一个on类
if(tc.classList.contains('on') == true){ //查询类
function dsq(){
window.clearInterval(lia);
}
window.setTimeout(dsq,5000);
}
}
// 清除定时器
var btn1 = document.getElementById('btn1');
btn1.onclick = function(){
var tc = document.getElementById('tc');
tc.style.display = 'none';
}
因为一直弹窗会对浏览器产生很大的负荷,这里除了添加不再弹窗之外还优化了一下代码。
之前的代码是点击之后开始执行循环函数,但是不停止循环,不管弹窗是否显示的状态都会每5秒执行一次,这样明显不合理,应该是在你关闭弹窗之后5秒才执行。弹窗在显示状态不执行。