单击按钮后显示倒计时
Show Countdown after button click
我有代码html
<div id="container">
<a href="#container">Show Content</a>
<div id="content">I am some content!</div>
</div>
当我点击 Show Content
回显倒计时(12 秒)后显示如何 <div id="content">I am some content!</div>
举个工作的例子。谢谢
您的 div(content) 没有隐藏,因此会出现在屏幕上。首先隐藏 div 使用:
<div id="content" style="display: none">I am some content!</div>
现在在节目内容中添加一个onclick
事件div:
<a href="#container" onclick="showDiv()">Show Content</a>
定义showDiv
函数:
var showDiv = function(){
setTimeout(function(){
document.getElementById('container').style.display = ''; //Edit suggested by RobG
}, 12000);
}
您可以使用 javaScript window.setTimeout
函数递归调用相同的超时函数,直到计数器达到 0;
var ctr = 12;
function showTimer(){
window.setTimeout(function() {
if(ctr >= 0) {
document.getElementById("counter").innerHTML = ctr + 's';
showTimer();
ctr--;
}
}, 500);
}
<div id="container">
<a href="#container" onClick="showTimer()">Show Content</a>
<div id="counter"></div>
<div id="content">I am some content!</div>
</div>
编辑: 示例更新为在倒计时开始时显示元素并在倒计时结束时隐藏它们。当用户单击 link 时,将调用 countToShow
函数。初始隐藏的 'ads' 元素立即显示在命令 adsElement.style.display = ''
中(删除内联指定的 display: none
样式)。当倒计时结束时 (remainingSeconds === 0
),我再次隐藏 'ads' 元素设置 adsElement.style.display = 'none'
.
这是一个使用 setInterval
函数的示例,可以指定倒计时时间。
function countToShow(timeInSeconds) {
var countdownElement = document.getElementById('countdown');
var contentElement = document.getElementById('content');
var adsElement = document.getElementById('ads');
var remainingSeconds = timeInSeconds;
adsElement.style.display = '';
countdownElement.innerHTML = remainingSeconds;
var interval = setInterval(function() {
countdownElement.innerHTML = --remainingSeconds;
if (remainingSeconds === 0) {
clearInterval(interval);
contentElement.style.display = '';
adsElement.style.display = 'none';
}
}, 1000);
}
<div id="container">
<a href="#container" onclick="countToShow(12)">Show Content</a>
<div id="ads" style="display: none">
<div id="countdown"></div>
<div>Ads</div>
</div>
<div id="content" style="display: none">I am some content!</div>
</div>
我有代码html
<div id="container">
<a href="#container">Show Content</a>
<div id="content">I am some content!</div>
</div>
当我点击 Show Content
回显倒计时(12 秒)后显示如何 <div id="content">I am some content!</div>
举个工作的例子。谢谢
您的 div(content) 没有隐藏,因此会出现在屏幕上。首先隐藏 div 使用:
<div id="content" style="display: none">I am some content!</div>
现在在节目内容中添加一个onclick
事件div:
<a href="#container" onclick="showDiv()">Show Content</a>
定义showDiv
函数:
var showDiv = function(){
setTimeout(function(){
document.getElementById('container').style.display = ''; //Edit suggested by RobG
}, 12000);
}
您可以使用 javaScript window.setTimeout
函数递归调用相同的超时函数,直到计数器达到 0;
var ctr = 12;
function showTimer(){
window.setTimeout(function() {
if(ctr >= 0) {
document.getElementById("counter").innerHTML = ctr + 's';
showTimer();
ctr--;
}
}, 500);
}
<div id="container">
<a href="#container" onClick="showTimer()">Show Content</a>
<div id="counter"></div>
<div id="content">I am some content!</div>
</div>
编辑: 示例更新为在倒计时开始时显示元素并在倒计时结束时隐藏它们。当用户单击 link 时,将调用 countToShow
函数。初始隐藏的 'ads' 元素立即显示在命令 adsElement.style.display = ''
中(删除内联指定的 display: none
样式)。当倒计时结束时 (remainingSeconds === 0
),我再次隐藏 'ads' 元素设置 adsElement.style.display = 'none'
.
这是一个使用 setInterval
函数的示例,可以指定倒计时时间。
function countToShow(timeInSeconds) {
var countdownElement = document.getElementById('countdown');
var contentElement = document.getElementById('content');
var adsElement = document.getElementById('ads');
var remainingSeconds = timeInSeconds;
adsElement.style.display = '';
countdownElement.innerHTML = remainingSeconds;
var interval = setInterval(function() {
countdownElement.innerHTML = --remainingSeconds;
if (remainingSeconds === 0) {
clearInterval(interval);
contentElement.style.display = '';
adsElement.style.display = 'none';
}
}, 1000);
}
<div id="container">
<a href="#container" onclick="countToShow(12)">Show Content</a>
<div id="ads" style="display: none">
<div id="countdown"></div>
<div>Ads</div>
</div>
<div id="content" style="display: none">I am some content!</div>
</div>