본문으로 바로가기

Timer

category Frontend/Javascript 2019. 6. 30. 00:35
/* 타이머 */
function countdown( elementName, minutes, seconds ) {
var elementName, endTime, hours, mins, msLeft, time;
 
function twoDigits( n ) {
            return (n <= 9 ? "0" + n : n);
   }
 
    function updateTimer() {
        msLeft = endTime - (+new Date);
        if ( msLeft < 1000 ) {
            alert("인증번호가 만료되었습니다.", undefined, undefined, "warning");
            $("" + elementName).remove();
            cert_ok = false;
            certificationNum = false;
            $("#cert_ok").val("");
            $("#certBtn").removeClass("blind");
            $("#certOkBtn").removeClass("blind");
        } else {
            time = new Date( msLeft );
            hours = time.getUTCHours();
            mins = time.getUTCMinutes();
            $("" + elementName).html((hours ? hours + ':' + twoDigits( mins ) : twoDigits(mins))
            + ':' + twoDigits( time.getUTCSeconds()));
            setTimeout( updateTimer, time.getUTCMilliseconds() + 500 );
        }
    }

    endTime = (+new Date+ 1000 * (60*minutes + seconds) + 500;
    updateTimer();
}
 
$("<div class='timeout'></div>").insertAfter($("#email"));
countdown(".timeout"30);



countdown 함수를 이용한다.

파라미터는 클래스 혹은 아이디 값 / 분 / 초 이다.

countdown(".timeout", 3, 0);

.timeout이라는 클래스를 가진 태그에 3분 타이머 실행


위의 예제는 timeout이라는 div 태그를 email 태그 뒤에 삽입하여 3분의 타이머를 작동 시킨다.


시나리오

이메일 입력 후 인증번호 받기 버튼 클릭 -> 인증번호 받기 버튼을 숨기고 타이머를 추가 ->

타이머가 종료되면 인증번호 만료되었다는 팝업 실행 -> 시간 만료 후 인증번호 받기 버튼을 숨김 해제

인증번호 받기 버튼 클릭 -> 타이머 시작

인증시간 만료 팝업 -> 인증번호 받기 버튼 숨김 해제




'Frontend > Javascript' 카테고리의 다른 글

iframe & 자식창에서 부모 링크 바꾸기  (0) 2019.09.11
var vs. let vs. const  (0) 2019.08.31
eval 함수  (0) 2019.06.29
CheckBox 값 처리  (0) 2019.01.31
브라우저 확인  (0) 2019.01.31