경매사이트 등에서 남은시간 이미지로 표시하기 정보
경매사이트 등에서 남은시간 이미지로 표시하기첨부파일
본문
필요해서 여기저기 참고해서 만들어봤습니다.
모든 숫자들을 하나의 이미지 파일에 넣어 필요한 숫자부분만을 골라서 표시하도록 만들었습니다.
깜박거림 없이 잘 돌아갑니다. 글씨들이 좀 크면 이미지 새로 만들고 background image 불러오는 부분 가로수치들 바꿔줘야 합니다.
배워가며 만든거라 필요없는 부분도 있을 듯 싶고, 코드도 단축될 수 있을지도 모르겠네요.
응용해서 변형하면 쓸만한 소스가 될 듯 합니다.
저는 남은 시간이 1일 이상이면 남은 일수만 보이고,
1일 미만이면 시간만,
1시간 미만이면 분과 초만,
1분 미만이면 초만 보이게 만들어 적용하고 있습니다.
-------------------------------------------
numbers.png 파일은 그누보드 메인 img 폴더에 넣습니다.
left_time.php는 그누보드 메인에 넣었으면
<? include("$g4[path]/left_time.php") ?>
이렇게 불러오던지 아님 그냥 필요한 페이지에 전체 복사해서 넣으셔도 됩니다.
남은 일수는 99일(2자리수)까지만 출력합니다. 더 필요하시면 '일'부분에 100단위 추가하도록 스크립트 추가하셔야 합니다.
남은시간이 없으면'종료'표시 됩니다.
-------------------------------------------
left_time.php 중 $target_time 에 원하는 종료시간을 정해주셔야 합니다.
<?
$target_time = '11-12-20 23:59:59'; // 종료시간 설정 $target_time = $view[wr_1] 등으로 수정
$left_time = (int)(strtotime($target_time) - $g4['server_time']);
?>
$target_time = '11-12-20 23:59:59'; // 종료시간 설정 $target_time = $view[wr_1] 등으로 수정
$left_time = (int)(strtotime($target_time) - $g4['server_time']);
?>
<script type="text/javascript">
<!--
$(document).ready(function() {
try {
document.execCommand("BackgroundImageCache", false, true);
} catch(ignored) {
}
// 남은시간 갱신
var timeLeft = <?=$left_time?>;
var updateLeftTime = function() {
<!--
$(document).ready(function() {
try {
document.execCommand("BackgroundImageCache", false, true);
} catch(ignored) {
}
// 남은시간 갱신
var timeLeft = <?=$left_time?>;
var updateLeftTime = function() {
timeLeft = (timeLeft <= 0) ? 0 : -- timeLeft;
if (timeLeft >= 1) {
var days = Math.floor(timeLeft / 86400);
var hours = Math.floor((timeLeft - 86400 * days) / 3600);
var minutes = Math.floor((timeLeft - (86400 * days) - (3600 * hours)) / 60);
var seconds = timeLeft % 60;
var bg_prefix = "<div style=\"width:19px;height:40px;background:url('<?=$g4[path]?>/img/numbers.png') no-repeat scroll ";
var bg_suffix = "px 0px transparent;\"></div>";
var hours = Math.floor((timeLeft - 86400 * days) / 3600);
var minutes = Math.floor((timeLeft - (86400 * days) - (3600 * hours)) / 60);
var seconds = timeLeft % 60;
var bg_prefix = "<div style=\"width:19px;height:40px;background:url('<?=$g4[path]?>/img/numbers.png') no-repeat scroll ";
var bg_suffix = "px 0px transparent;\"></div>";
$('#td1').html(bg_prefix + (-(Math.floor((days % 100) / 10))*19) + bg_suffix);
$('#td2').html(bg_prefix + (-(days % 10)*19) + bg_suffix);
$('#th1').html(bg_prefix + (-(Math.floor((hours % 100) / 10))*19) + bg_suffix);
$('#th2').html(bg_prefix + (-(hours % 10)*19) + bg_suffix);
$('#tm1').html(bg_prefix + (-(Math.floor(minutes / 10))*19) + bg_suffix);
$('#tm2').html(bg_prefix + (-(minutes % 10)*19) + bg_suffix);
$('#ts1').html(bg_prefix + (-(Math.floor(seconds / 10))*19) + bg_suffix);
$('#ts2').html(bg_prefix + (-(seconds % 10)*19) + bg_suffix);
$('#ts1').html(bg_prefix + (-(Math.floor(seconds / 10))*19) + bg_suffix);
$('#ts2').html(bg_prefix + (-(seconds % 10)*19) + bg_suffix);
$('#left_time').show();
} else {
$('#time_end').show();
$('#left_time').hide();
}
$('#td2').html(bg_prefix + (-(days % 10)*19) + bg_suffix);
$('#th1').html(bg_prefix + (-(Math.floor((hours % 100) / 10))*19) + bg_suffix);
$('#th2').html(bg_prefix + (-(hours % 10)*19) + bg_suffix);
$('#tm1').html(bg_prefix + (-(Math.floor(minutes / 10))*19) + bg_suffix);
$('#tm2').html(bg_prefix + (-(minutes % 10)*19) + bg_suffix);
$('#ts1').html(bg_prefix + (-(Math.floor(seconds / 10))*19) + bg_suffix);
$('#ts2').html(bg_prefix + (-(seconds % 10)*19) + bg_suffix);
$('#ts1').html(bg_prefix + (-(Math.floor(seconds / 10))*19) + bg_suffix);
$('#ts2').html(bg_prefix + (-(seconds % 10)*19) + bg_suffix);
$('#left_time').show();
} else {
$('#time_end').show();
$('#left_time').hide();
}
}
updateLeftTime();
setInterval(updateLeftTime, 1000);
});
-->
</script>
updateLeftTime();
setInterval(updateLeftTime, 1000);
});
-->
</script>
<style type="text/css">
.time{position:relative;}
.time .hms{position:absolute}
.time .hms:after{display:block;clear:both;content:''}
.time .hms span{float:left}
.time .hms .timer{width:19px;height:40px;}
.time .hms .timer_day{width:30px;height:40px;margin-right:4px;background:url("<?=$g4['path']?>/img/numbers.png") no-repeat scroll -190px 0px transparent;}
.time .hms .timer_hour{width:63px;height:40px;margin-right:4px;background:url("<?=$g4['path']?>/img/numbers.png") no-repeat scroll -219px 0px transparent;}
.time .hms .timer_min{width:33px;height:40px;margin-right:4px;background:url("<?=$g4['path']?>/img/numbers.png") no-repeat scroll -282px 0px transparent;}
.time .hms .timer_sec{width:34px;height:40px;background:url("<?=$g4['path']?>/img/numbers.png") no-repeat scroll -316px 0px transparent;}
.time .hms .timer_end{width:63px;height:40px;background:url("<?=$g4['path']?>/img/numbers.png") no-repeat scroll -350px 0px transparent;}
</style>
.time{position:relative;}
.time .hms{position:absolute}
.time .hms:after{display:block;clear:both;content:''}
.time .hms span{float:left}
.time .hms .timer{width:19px;height:40px;}
.time .hms .timer_day{width:30px;height:40px;margin-right:4px;background:url("<?=$g4['path']?>/img/numbers.png") no-repeat scroll -190px 0px transparent;}
.time .hms .timer_hour{width:63px;height:40px;margin-right:4px;background:url("<?=$g4['path']?>/img/numbers.png") no-repeat scroll -219px 0px transparent;}
.time .hms .timer_min{width:33px;height:40px;margin-right:4px;background:url("<?=$g4['path']?>/img/numbers.png") no-repeat scroll -282px 0px transparent;}
.time .hms .timer_sec{width:34px;height:40px;background:url("<?=$g4['path']?>/img/numbers.png") no-repeat scroll -316px 0px transparent;}
.time .hms .timer_end{width:63px;height:40px;background:url("<?=$g4['path']?>/img/numbers.png") no-repeat scroll -350px 0px transparent;}
</style>
<table width="100%" height="100%" cellspacing="0" cellpadding="0" border="0">
<tr>
<td height="40" valign="top">
<!-- 남은시간 시작 -->
<div id="left_time" class="time">
<div class="hms">
<span id="td1" class="timer"></span>
<span id="td2" class="timer"></span>
<span id="td" class="timer_day"></span>
<span id="th1" class="timer"></span>
<span id="th2" class="timer"></span>
<span id="th" class="timer_hour"></span>
<span id="tm1" class="timer"></span>
<span id="tm2" class="timer"></span>
<span id="tm" class="timer_min"></span>
<span id="ts1" class="timer"></span>
<span id="ts2" class="timer"></span>
<span id="ts" class="timer_sec"></span>
</div>
</div>
<!-- 남은시간 끝 -->
<!-- 종료시 시작 -->
<div id="time_end" class="time" style="display:none">
<div class="hms">
<span class="timer_end"></span>
</div>
</div>
<!-- 종료시 끝 -->
</td>
</tr>
</table>
<tr>
<td height="40" valign="top">
<!-- 남은시간 시작 -->
<div id="left_time" class="time">
<div class="hms">
<span id="td1" class="timer"></span>
<span id="td2" class="timer"></span>
<span id="td" class="timer_day"></span>
<span id="th1" class="timer"></span>
<span id="th2" class="timer"></span>
<span id="th" class="timer_hour"></span>
<span id="tm1" class="timer"></span>
<span id="tm2" class="timer"></span>
<span id="tm" class="timer_min"></span>
<span id="ts1" class="timer"></span>
<span id="ts2" class="timer"></span>
<span id="ts" class="timer_sec"></span>
</div>
</div>
<!-- 남은시간 끝 -->
<!-- 종료시 시작 -->
<div id="time_end" class="time" style="display:none">
<div class="hms">
<span class="timer_end"></span>
</div>
</div>
<!-- 종료시 끝 -->
</td>
</tr>
</table>
-------------------------------------------
추천
4
4
댓글 2개
음... 뒤로가기했다 되돌아가기 할때 지난시간으로 다시 카운팅되는 문제는 다른 유명한 사이트들도 마찬가지 문제가 있군요. 문제가 될만도 한데... 소셜 커머스 사이트들 모두 그런 듯 보입니다.
이런 좋은자료에 댓글이 없네요 추천에요