Jam merupakan penanda waktu yang penting saat kita mengunjungi  website. Pada Tutorial kali ini kita akan membuat Jam Digital pada website kita menggunakan jQuery dan CSS3 HTML <div id="clock" class="light"> <div class="display"> <div class="weekdays"></div> ...

Membuat Jam Digital dengan CSS3

Jam merupakan penanda waktu yang penting saat kita mengunjungi  website. Pada Tutorial kali ini kita akan membuat Jam Digital pada website kita menggunakan jQuery dan CSS3

HTML

<div id="clock" class="light">
    <div class="display">
        <div class="weekdays"></div>
        <div class="ampm"></div>
        <div class="alarm"></div>
        <div class="digits"></div>
    </div>
</div>

Elemen utama #clock div, berisi tampilan yang menunjukan waktu dalam sehari, label AM/PM, dan berikut markup untuk digit dalam jam

<div class="zero">
    <span class="d1"></span>
    <span class="d2"></span>
    <span class="d3"></span>
    <span class="d4"></span>
    <span class="d5"></span>
    <span class="d6"></span>
    <span class="d7"></span>
</div>

Secara default style ditetapkan dengan opacity: 0. Kelas ditugaskan untuk div parent yang membuat mereka dapat terlihat. Berikut adalah CSSnya:

assets/css/styles.css

/* 0 */

#clock .digits div.zero .d1,
#clock .digits div.zero .d3,
#clock .digits div.zero .d4,
#clock .digits div.zero .d5,
#clock .digits div.zero .d6,
#clock .digits div.zero .d7{
    opacity:1;
}

 

Semua segmen  terlihat, kecuali satu yang di tengah. Kita telah tambahkan transisi properti CSS3 pada semua span tersebut, yang menganimasikan opacity bila beralih di antara angka.

 

JQuery

Untuk membuat jam berfungsi, kita akan menggunakan jQuery untuk menghasilkan markup untuk masing-masing digit, dan mengatur timer untuk memperbarui kelas setiap detik. Untuk membuatnya hidup lebih mudah, kami akan menggunakan library moment.js  untuk mengkompensasi kekurangan JavaScript native tanggal dan fungsi waktu.

assets/js/script.js

$(function(){

    // Cache some selectors

    var clock = $('#clock'),
        alarm = clock.find('.alarm'),
        ampm = clock.find('.ampm');

    // Map digits to their names (this will be an array)
    var digit_to_name = 'zero one two three four five six seven eight nine'.split(' ');

    // This object will hold the digit elements
    var digits = {};

    // Positions for the hours, minutes, and seconds
    var positions = [
        'h1', 'h2', ':', 'm1', 'm2', ':', 's1', 's2'
    ];

    // Generate the digits with the needed markup,
    // and add them to the clock

    var digit_holder = clock.find('.digits');

    $.each(positions, function(){

        if(this == ':'){
            digit_holder.append('<div class="dots">');
        }
        else{

            var pos = $('<div>');

            for(var i=1; i<8; i++){
                pos.append('<span class="d' + i + '">');
            }

            // Set the digits as key:value pairs in the digits object
            digits[this] = pos;

            // Add the digit elements to the page
            digit_holder.append(pos);
        }

    });

    // Add the weekday names

    var weekday_names = 'MON TUE WED THU FRI SAT SUN'.split(' '),
        weekday_holder = clock.find('.weekdays');

    $.each(weekday_names, function(){
        weekday_holder.append('<span>' + this + '</span>');
    });

    var weekdays = clock.find('.weekdays span');

    // Run a timer every second and update the clock

    (function update_time(){

        // Use moment.js to output the current time as a string
        // hh is for the hours in 12-hour format,
        // mm - minutes, ss-seconds (all with leading zeroes),
        // d is for day of week and A is for AM/PM

        var now = moment().format("hhmmssdA");

        digits.h1.attr('class', digit_to_name[now[0]]);
        digits.h2.attr('class', digit_to_name[now[1]]);
        digits.m1.attr('class', digit_to_name[now[2]]);
        digits.m2.attr('class', digit_to_name[now[3]]);
        digits.s1.attr('class', digit_to_name[now[4]]);
        digits.s2.attr('class', digit_to_name[now[5]]);

        // The library returns Sunday as the first day of the week.
        // Stupid, I know. Lets shift all the days one position down, 
        // and make Sunday last

        var dow = now[6];
        dow--;

        // Sunday!
        if(dow < 0){
            // Make it last
            dow = 6;
        }

        // Mark the active day of the week
        weekdays.removeClass('active').eq(dow).addClass('active');

        // Set the am/pm text:
        ampm.text(now[7]+now[8]);

        // Schedule this function to be run again in 1 sec
        setTimeout(update_time, 1000);

    })();

    // Switch the theme

    $('a.button').click(function(){
        clock.toggleClass('light dark');
    });

});

 

Bagian paling penting dari kode di sini adalah fungsi UPDATE_TIME. Di dalamnya, kita dapat waktu saat ini sebagai string, dan menggunakannya untuk mengisi elemen jam dan untuk mengatur kelas yang benar untuk angka.

Dan Jam Digital sudah siap untuk digunakkan pada website kita, silahkan mencoba.

 

 


About Author

Sendy PK

Saya adalah Programmer yang memiliki impian untuk menguasai dunia kunjungi situs pribadi saya di www.spk.my.id dan Online Shop saya di www.spkshop.web.id


Comment & Discussions

  • Purwadi P W
    http://tutorialzine.com/2013/06/digital-clock/

  • Please LOGIN before if you want to give the comment.