Simple Digital Countdown Clock with jQuery and CSS3
File Size: | 2.09 KB |
---|---|
Views Total: | 2487 |
Last Update: | |
Publish Date: | |
Official Website: | Go to website |
License: | MIT |
A digital countdown clock which allows you to count down in seconds and millisecond to a target date & time, built on top of CSS3, jQuery and requestAnimationFrame.
How to use it:
1. The Html structure for the digital countdown clock should be like this.
<section class="clock"> <div id="digit-10" class="digit"> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> </div> <div id="digit-9" class="digit"> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> </div> <div id="digit-8" class="digit"> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> </div> <div id="digit-7" class="digit"> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> </div> <div id="digit-6" class="digit"> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> </div> <div id="digit-5" class="digit"> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> </div> <div id="digit-4" class="digit"> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> </div> <div id="digit-3" class="digit"> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> </div> <div id="digit-2" class="digit"> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> </div> <div id="digit-1" class="digit"> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> </div> <div id="digit-0" class="digit"> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> </div> </section>
2. The required CSS styles for the countdown clock.
.clock { font-size: 0; text-align: center; } .clock .digit { display: inline-block; width: 88px; margin: 10px; -webkit-transform: skewX(-2deg); transform: skewX(-2deg); } .clock .digit#digit-2 .cell { -webkit-transition: opacity 50ms ease; transition: opacity 50ms ease; } .clock .digit#digit-3 .cell, .clock .digit#digit-4 .cell, .clock .digit#digit-5 .cell, .clock .digit#digit-6 .cell, .clock .digit#digit-7 .cell, .clock .digit#digit-8 .cell, .clock .digit#digit-9 .cell, .clock .digit#digit-10 .cell, .clock .digit#digit-11 .cell { -webkit-transition: opacity 100ms ease; transition: opacity 100ms ease; } .clock .digit .cell { width: 18px; height: 18px; margin: 2px; background-color: white; border-radius: 2px; display: inline-block; opacity: 0.1; } .clock .digit .cell.on { opacity: 1; }
3. Include the necessary jQuery javascript library in the document.
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
4. Add the following Javascript snippets into your document and set the target date & time you want to count down to at the beginning.
var grad = new Date(2016, 3, 16, 17, 0, 0, 0, 0), digit0 = $('#digit-0'); digit1 = $('#digit-1'), digit2 = $('#digit-2'), digit3 = $('#digit-3'), digit4 = $('#digit-4'), digit5 = $('#digit-5'), digit6 = $('#digit-6'), digit7 = $('#digit-7'), digit8 = $('#digit-8'), digit9 = $('#digit-9'), digit10 = $('#digit-10'); function renderDigit(container, number) { var matrix; switch(number) { case 0: matrix = [ true, true, true, true, true, false, false, true, true, false, false, true, true, false, false, true, true, false, false, true, true, false, false, true, true, true, true, true ]; break; case 1: matrix = [ false, false, false, true, false, false, false, true, false, false, false, true, false, false, false, true, false, false, false, true, false, false, false, true, false, false, false, true ]; break; case 2: matrix = [ true, true, true, true, false, false, false, true, false, false, false, true, true, true, true, true, true, false, false, false, true, false, false, false, true, true, true, true ]; break; case 3: matrix = [ true, true, true, true, false, false, false, true, false, false, false, true, false, true, true, true, false, false, false, true, false, false, false, true, true, true, true, true ]; break; case 4: matrix = [ true, false, false, false, true, false, false, true, true, false, false, true, true, true, true, true, false, false, false, true, false, false, false, true, false, false, false, true ]; break; case 5: matrix = [ true, true, true, true, true, false, false, false, true, false, false, false, true, true, true, true, false, false, false, true, false, false, false, true, true, true, true, true ]; break; case 6: matrix = [ true, true, true, true, true, false, false, false, true, false, false, false, true, true, true, true, true, false, false, true, true, false, false, true, true, true, true, true ]; break; case 7: matrix = [ true, true, true, true, true, false, false, true, false, false, false, true, false, false, false, true, false, false, false, true, false, false, false, true, false, false, false, true ]; break; case 8: matrix = [ true, true, true, true, true, false, false, true, true, false, false, true, true, true, true, true, true, false, false, true, true, false, false, true, true, true, true, true ]; break; case 9: matrix = [ true, true, true, true, true, false, false, true, true, false, false, true, true, true, true, true, false, false, false, true, false, false, false, true, false, false, false, true ]; break; } var children = container.children(); var len = matrix.length; for (var i = 0; i < len; i++) { children.eq(i).toggleClass('on', matrix[i]); } } function render() { var now = new Date(), diff = String(grad.getTime() - now.getTime()), len = diff.length; renderDigit(digit0, Number(diff.charAt(len-1))); renderDigit(digit1, Number(diff.charAt(len-2))); renderDigit(digit2, Number(diff.charAt(len-3))); renderDigit(digit3, Number(diff.charAt(len-4))); renderDigit(digit4, Number(diff.charAt(len-5))); renderDigit(digit5, Number(diff.charAt(len-6))); renderDigit(digit6, Number(diff.charAt(len-7))); renderDigit(digit7, Number(diff.charAt(len-8))); renderDigit(digit8, Number(diff.charAt(len-9))); renderDigit(digit9, Number(diff.charAt(len-10))); renderDigit(digit10, Number(diff.charAt(len-11))); requestAnimationFrame(render); } requestAnimationFrame(render);
This awesome jQuery plugin is developed by mjswensen. For more Advanced Usages, please check the demo page or visit the official website.