Heim >Web-Frontend >js-Tutorial >Implementieren Sie einen schönen und praktischen Countdown-Beispielcode basierend auf jQuery_jquery
Countdown-Effekte haben ein breites Anwendungsspektrum, z. B. Countdown für Olympische Spiele, Countdown für Hochschulaufnahmeprüfungen und Feiertags-Countdown usw. In diesem Abschnitt wird ein schönerer und praktischerer Countdown-Effekt beschrieben.
Das Codebeispiel lautet wie folgt:
<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>倒计时效果代码</title> <style type="text/css"> * { padding:0; margin:0; } .colockbox { width:250px; height:30px; overflow:hidden; color:#000000; background:url(mytest/jQuery/colockbg.png) no-repeat; margin:0px auto; } .colockbox span { float:left; display:block; width:40px; height:29px; line-height:29px; font-size:20px; font-weight:bold; text-align:center; color:#ffffff; margin-right:22px; } </style> <script type="text/javascript" src="http://www.softwhy.com/mytest/jQuery/jquery-1.8.3.js"></script> <script type="text/javascript"> $(function(){ countDown("2016/2/3 6:30:59","#colockbox1"); }); function countDown(time,id){ var day_elem=$(id).find('.day'); var hour_elem=$(id).find('.hour'); var minute_elem=$(id).find('.minute'); var second_elem=$(id).find('.second'); var end_time = new Date(time).getTime(); var sys_second = (end_time-new Date().getTime())/1000; var timer = setInterval(function(){ if(sys_second>1) { sys_second-=1; var day=Math.floor((sys_second/3600)/24); var hour=Math.floor((sys_second/3600)%24); var minute=Math.floor((sys_second/60)%60); var second=Math.floor(sys_second%60); $(day_elem).text(day); $(hour_elem).text(hour<10?"0"+hour:hour); $(minute_elem).text(minute<10?"0"+minute:minute); $(second_elem).text(second<10?"0"+second:second); } else { clearInterval(timer); } }, 1000); } </script> </head> <body> <div class="colockbox" id="colockbox1"> <span class="day">00</span> <span class="hour">00</span> <span class="minute">00</span> <span class="second">00</span> </div> </body> </html>
Der obige Code erfüllt unsere Anforderungen und kann einen Countdown-Effekt von Sekunden bis Tagen erzielen. Der Implementierungsprozess wird unten vorgestellt.
1. Umsetzungsprinzip:
Das Prinzip ist relativ einfach. Man erhält den Zeitstempel der Ablaufzeit abzüglich des Zeitstempels der aktuellen Zeit, also der Anzahl der Sekunden, die zwischen den beiden liegen. Teilen Sie dann diese Anzahl an Sekunden durch 3600, um die Zahl zu erhalten der Stundendifferenz, und dann dividieren. Nehmen Sie 24 und verwenden Sie dann die Funktion Math.floor() zum Abrunden. Dies ist die Anzahl der Tage. Dieses Prinzip wird verwendet, um die folgenden Stunden, Minuten und Sekunden zu erhalten. Verwenden Sie die Timer-Funktion, um jede Sekunde die entsprechende Funktion aufzurufen, um den Countdown-Effekt zu erzielen.
2. Codekommentare:
1.$(function(){}), wenn die Dokumentstruktur vollständig geladen ist, führen Sie den Code in der Funktion aus.
2.countDown("2016/2/3 6:30:59","#colockbox1"), rufen Sie die Funktion auf, der erste Parameter ist die Ablaufzeit und der zweite Parameter ist der ID-Attributwert des Div.
3.Funktion countDown(time,id){}, deklarieren Sie diese Funktion.
4.var day_elem=$(id).find('.day'), holen Sie sich das Objekt, dessen Klassenattributwert day ist, unter dem div.
5.var Hour_elem = $(id).find('.hour'), rufen Sie das Objekt ab, dessen Klassenattributwert Stunde unter dem Div ist.
6.var minute_elem=$(id).find('.minute'), holen Sie sich das Objekt, dessen Klassenattributwert minute unter dem div ist.
7.var second_elem=$(id).find('.second'), ruft das Objekt ab, dessen Klassenattributwert der zweite unter dem div ist.
8.var end_time=new Date(time).getTime(), holen Sie sich den Zeitstempel des Ablaufereignisses.
9.var sys_second=(end_time-new Date().getTime())/1000, ermittelt die Anzahl der Sekunden Differenz zwischen der Ablaufzeit und der aktuellen Zeit.
10.var timer=setInterval(function(){}, 1000), führe die Funktion jede Sekunde aus.
11.if(sys_second>1), wenn die Differenz in Sekunden größer als 1 ist.
12.sys_second-=1, subtrahiere eins von der Sekunde.
13.var day=Math.floor((sys_second/3600)/24), ermittelt die Anzahl der Tage Unterschied.
14.var Hour=Math.floor((sys_second/3600)$), ermitteln Sie die Anzahl der Stundendifferenz. Bitte beachten Sie, dass es sich bei dem Folgenden um eine Modulo-Operation handelt.
15.var minute=Math.floor((sys_second/60)`), ermittelt die Anzahl der Minuten Differenz.
16.var second=Math.floor(sys_second`), ermittelt die Anzahl der Sekunden Differenz.
17.$(day_elem).text(day), schreibt den Tag in das span-Element.
18.$(hour_elem).text(hour<10?"0"hour:hour), schreiben Sie die Stunde in span. Wenn die Anzahl der Stunden weniger als 10 beträgt, fügen Sie vorne 0 und dahinter den gleichen Grund hinzu.
19.clearInterval (Timer): Stoppen Sie die Ausführung der Timer-Funktion setInterval, wenn die Sekundendifferenz 0 erreicht.
Der obige Inhalt ist ein schöner und praktischer Countdown-Beispielcode basierend auf jQuery, den der Herausgeber mit Ihnen geteilt hat. Ich hoffe, dass das Teilen dieses Artikels für alle hilfreich sein kann.