2016-04-19 8 views
-1

i Code htmlanzeigen Countdown nach klicken

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

haben Wie, wenn ich klicken Show Content Echo Countdown (12s) vor Show <div id="content">I am some content!</div>

Geben Sie mir ein Beispiel für die Arbeit. Danke

+0

Es wird wahrscheinlich sequentielle Anrufe verwenden, um * SetTimeout *, bis die Zeit abgelaufen ist, dann ein letzter Aufruf an die div zu zeigen. Was hast du bisher versucht? – RobG

+0

Ich habe kein Wissen für js. Gib ein Beispiel, bitte. Danke für die Rückmeldung. – DinhTv

Antwort

0

Edit: Beispiel aktualisierten Elemente zu zeigen, wenn der Countdown beginnt und sich verstecken, wenn der Countdown abgelaufen ist. Wenn der Benutzer auf den Link klickt, wird die countToShow-Funktion aufgerufen. Sofort wird das anfänglich versteckte "ads" -Element mit dem Befehl adsElement.style.display = '' angezeigt (wodurch der inline angegebene Stil entfernt wird). Wenn der Countdown endet (remainingSeconds === 0), blende ich das Element "ads" erneut aus und setze adsElement.style.display = 'none'.

Hier ist ein Beispiel mit der setInterval Funktion mit der Möglichkeit, die Countdown-Zeit anzugeben.

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

danke für die Unterstützung. Wie zeigt man mehr div, wenn man auf "# container" klickt: klick auf '# container' zeige mehr' div ads' + 'countdown'/macht 'countdown' aus' div ads'? – DinhTv

+0

Ich habe die Antwort aktualisiert, um Ihre Anforderungen zu erfüllen. – RafaelHamasaki

+0

wieder! Danke für die Unterstützung. – DinhTv

0

Ihr div (Inhalt) ist nicht ausgeblendet und wird daher bereits auf dem Bildschirm angezeigt. Zuerst ausblenden div unter Verwendung:

<a href="#container" onclick="showDiv()">Show Content</a> 

Definieren Sie die showDiv Funktion:

<div id="content" style="display: none">I am some content!</div> 

Jetzt ein onclick Ereignis zum Inhalt zeigen div hinzufügen

var showDiv = function(){ 
    setTimeout(function(){ 
     document.getElementById('container').style.display = ''; //Edit suggested by RobG 
    }, 12000); 
} 
+0

Betrachten Sie 'style.display = ''', damit das Element den Standardwert oder den übernommenen Anzeigewert annimmt. – RobG

+0

@RobG Ja, ich glaube, das wäre besser, als es hier zu definieren. – ayushgp

+0

geben Sie mir ein Beispiel in https://jsfiddle.net/f4qg9vf1/, pls. Ich habe hinzufügen, aber nicht anzeigen – DinhTv

0

können Sie JavaScript window.setTimeout Funktion mit rekursivem Aufruf der gleichen Timeout-Funktion bis Zählerstand 0 erreicht;

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

So klicken Sie auf 'Inhalt anzeigen' echo '

' (ausblenden '
I am some content!
') und done Zähler (12s) zeigen '
I am some content!
'. Danke – DinhTv