카운트다운 효과는 올림픽 카운트다운, 대학 입시 카운트다운, 휴일 카운트다운 등 다양한 용도로 사용됩니다. 이 섹션에서는 더욱 아름답고 실용적인 카운트다운 효과를 공유합니다.
코드 예시는 다음과 같습니다.
<!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>
위 코드는 우리의 요구 사항을 충족하며 몇 초에서 며칠까지 카운트다운 효과를 얻을 수 있습니다. 구현 프로세스는 아래에 소개되어 있습니다.
1. 구현 원칙:
원리는 비교적 간단합니다. 만료 시간의 타임스탬프에서 현재 시간의 타임스탬프를 뺀 값, 즉 둘 사이의 초 수를 3600으로 나누는 것입니다. 시간 차이를 24로 나누고 Math.floor() 함수를 사용하여 일수를 반올림하면 아래의 시간, 분, 초를 구할 수 있습니다. 타이머 기능을 사용하여 매초마다 해당 기능을 호출하여 카운트다운 효과를 얻으세요.
2. 코드 주석:
1.$(function(){}), 문서 구조가 완전히 로드되면 함수의 코드를 실행합니다.
2.countDown("2016/2/3 6:30:59","#colockbox1"), 함수를 호출하면 첫 번째 매개변수는 만료 시간이고 두 번째 매개변수는 div의 id 속성 값입니다.
3.function countDown(time,id){}, 이 함수를 선언합니다.
4.var day_elem=$(id).find('.day'), div 아래에서 클래스 속성 값이 day인 객체를 가져옵니다.
5.var hour_elem=$(id).find('.hour'), div 아래에서 클래스 속성 값이 hour인 객체를 가져옵니다.
6.var Minute_elem=$(id).find('. Minute'), div 아래에서 클래스 속성 값이 분인 객체를 가져옵니다.
7.var second_elem=$(id).find('.second'), 클래스 속성 값이 div 아래에서 두 번째인 객체를 가져옵니다.
8.var end_time=new Date(time).getTime(), 만료 이벤트의 타임스탬프를 가져옵니다.
9.var sys_second=(end_time-new Date().getTime())/1000, 만료 시간과 현재 시간 사이의 차이(초)를 가져옵니다.
10.var 타이머=setInterval(function(){}, 1000), 매초마다 함수를 실행합니다.
11.if(sys_second>1), 초 단위의 차이가 1보다 큰 경우.
12.sys_second-=1, 두 번째에서 1을 뺍니다.
13.var day=Math.floor((sys_second/3600)/24), 일수 차이를 구합니다.
14.var hour=Math.floor((sys_second/3600)$), 시간 차이를 구합니다. 다음은 모듈로 연산이라는 점에 유의하세요.
15.var hour=Math.floor((sys_second/60)`), 분 차이를 구합니다.
16.var second=Math.floor(sys_second`), 초 차이를 구합니다.
17.$(day_elem).text(day), 날짜를 범위 요소에 씁니다.
18.$(hour_elem).text(hour<10?"0" hour:hour), 시간을 범위에 씁니다. 시간이 10보다 작으면 앞에 0을 추가하고 뒤에도 같은 이유를 추가합니다.
19.clearInterval(timer), 초 차이가 0에 도달하면 타이머 함수 setInterval의 실행을 중지합니다.
위 내용은 편집자가 공유한 jQuery 기반의 아름답고 실용적인 카운트다운 예제 코드입니다. 이 기사를 공유하는 것이 모든 사람에게 도움이 되기를 바랍니다.