2016-04-19 99 views
-1

我有前戏码HTML显示倒计时点击

<div id="container"> 
    <a href="#container">Show Content</a> 
    <div id="content">I am some content!</div> 
</div> 

如何当我点击Show Content回声倒计时(12S)<div id="content">I am some content!</div>

给我的工作的例子。谢谢

+0

它可能会使用顺序调用* *的setTimeout直到时间结束,那么最后的通话中显示的股利。你试过什么了? – RobG

+0

我对js不了解。举个例子吧。感谢您的反馈。 – DinhTv

回答

0

编辑:实施例更新以示出当倒计时开始元素和隐藏时的倒计时结束。当用户点击链接时,调用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>

+0

感谢您的支持。点击'#容器'时如何显示更多div:点击'#容器'显示更多'div ads' +'倒计时'/完成'countdown'隐藏'div ads'? – DinhTv

+0

我已更新答案以符合您的要求。再次来到 – RafaelHamasaki

+0

!感谢你的支持。 – DinhTv

0

您的div(内容)没有隐藏,因此会在屏幕上。首先通过使用隐藏的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); 
} 
+0

考虑'style.display =''',以便元素采用其默认或继承的显示值。 – RobG

+0

@RobG是的,我觉得这比在这里定义它更好。 – ayushgp

+0

给我一个在https://jsfiddle.net/f4qg9vf1/例如,请。我有添加,但不显示 – DinhTv

0

您可以使用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>

+0

如何点击'显示内容'回声'

'(隐藏'
I am some content!
')和完成计数器(12s)显示'
I am some content!
'。谢谢 – DinhTv