728x90
반응형웹에 적용될 카운트다운 만들기
W3C에 소개되어있는 카운트 다운 소스를 이용해 진행중인 프로젝트에 적용하였다
일단
var countDownDate = new Date("Jan 5, 2021 15:37:25").getTime();
이 부분을 개발에서 지정된 날짜로 넣어주면 그 날짜를 읽어 카운트 해 주는 방식으로 바꾸고
var dday = $(".mainBnr__timer").attr('data-dday');
var yy = dday.substr(0,4);
var mm = dday.substr(4,2);
var dd = dday.substr(6,2);
var hhmmss = dday.substr(8,2)+':'+dday.substr(10,2)+':'+dday.substr(12,2);
저 mm 부분이 숫자가 아닌 문자로 바꿔주기에는 약간 귀찮아서 아래와 같은 형식으로 테스트해 보았다
var countDownDate = new Date(yy+'/'+mm+'/'+dd+' '+hhmmss).getTime();
작업은 수월했으나 IE9버전에서 읽어오지를 못함....
그리하여 month를 str로 분기해주는 구문을 추가하고
var mmStr = mm == 01 ? 'January' :
mm == 02 ? 'February' :
mm == 03 ? 'March' :
mm == 04 ? 'April' :
mm == 05 ? 'May' :
mm == 06 ? 'June' :
mm == 07 ? 'July' :
mm == 08 ? 'August' :
mm == 09 ? 'September' :
mm == 10 ? 'October' :
mm == 11 ? 'November' :
'December' ;
var countDownDate = new Date(mmStr + dd + ','+ yy + ' ' + hhmmss).getTime();
확인해보니 IE9에서는 OK
그렇게 개발에 넘기고 개발이 붙은 화면을 확인하니
이번에는 IOS에서 오류가 난다
확인해보니 시간을 넣어주는 부분에서 '초' 단위까지 사용하지 않아서 ios에서는 이를 쉽게 허용하지 않는 현상이 발생.
초는 무조건 00 초로 넣어주고 모든 브라우저 단말기에서 정상작동을 확인했다
var hhmmss = dday.substr(8,2)+':'+dday.substr(10,2)+':00';
아래는 이렇게 완성된 코드이다
var dday = $(".mainBnr__timer").attr('data-dday');
var yy = dday.substr(0,4);
var mm = dday.substr(4,2);
var dd = dday.substr(6,2);
var hhmmss = dday.substr(8,2)+':'+dday.substr(10,2)+':00';
var mmStr = mm == 01 ? 'January' :
mm == 02 ? 'February' :
mm == 03 ? 'March' :
mm == 04 ? 'April' :
mm == 05 ? 'May' :
mm == 06 ? 'June' :
mm == 07 ? 'July' :
mm == 08 ? 'August' :
mm == 09 ? 'September' :
mm == 10 ? 'October' :
mm == 11 ? 'November' :
'December' ;
var countDownDate = new Date(mmStr + dd + ','+ yy + ' ' + hhmmss).getTime();
// Update the count down every 1 second
var x = setInterval(function() {
// Get today's date and time
var now = new Date().getTime();
// Find the distance between now and the count down date
var distance = countDownDate - now;
// Time calculations for days, hours, minutes and seconds
var days = Math.floor(distance / (1000 * 60 * 60 * 24));
var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
var seconds = Math.floor((distance % (1000 * 60)) / 1000);
// Display the result
var timerCont = '남은시간 : <b>'+days+'</b>일 '+
'<b>'+hours+'</b>시간 '+
'<b>'+minutes+'</b>분 '+
'<b>'+seconds+'</b>초';
document.getElementById("mainBnr__timer").innerHTML = timerCont;
// 설정시간 지난후
if (distance < 0) {
clearInterval(x);
document.getElementById("mainBnr__timer").innerHTML = "준비중";
}
}, 1000);
'STUDY > javascript' 카테고리의 다른 글
pull to refresh 각도설정 추가 (0) | 2021.04.14 |
---|---|
video 전체화면 내리기 (0) | 2020.10.07 |
구형기기에서 photoswipe 회전 오류 (0) | 2019.09.27 |
스와이프메뉴 클릭하면 가운데오기 (21) | 2019.07.25 |
textarea 높이 측정 (0) | 2019.07.05 |