如何使用jQuery和CSS3制作数字时钟

AI摘要
Deepseek提供支持

标记

时钟不需要很多HTML。这是因为它的很大一部分(例如工作日的名称和数字的代码)是动态生成的。这是使用时钟需要在页面上具有的标记:

index.html

<div id = “ clock”  class = “ light” >
     < div  class = “ display” > 
        < div  class = “工作日” > </ div > 
        < div  class = “ ampm” > </ div > 
        < div  class = “警报” > </ div > 
        < div  class = “ digits” > </ div >
    </ div > 
< / div>

主要元素#clock div包含.display,该显示又包含工作日列表,AM / PM标签警报图标和时间。这是数字之一的生成标记:

广告
广告图片

<div class = “零” >
     < 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>

.digits元素将包含这些带有跨度的div中的6个,每个时间位数对应一个。从上面的片段中可以看到,这些div的类名从(一秒钟会更多),并且包含七个具有唯一类的span元素。这些跨度是数字段,就像旧的数字时钟一样:

它们完全使用CSS设置样式,并且opacity:0默认设置为。分配给其父div的类使它们可见。这是零的CSS:

资产/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 {
    不透明度1 ; 
}

除中间部分外,其他所有部分均可见(否则为8)。我为所有这些跨度添加了CSS3过渡属性,该属性可在数字之间切换时为不透明度设置动画。

样式表中还有很多其他CSS,但在此不再赘述。我认为,了解CSS如何工作的最好方法是通过检查Firebug,Chrome的Inspector或所选浏览器的开发人员工具中的演示程序的实时代码。

jQuery代码

为了使时钟正常工作,我们将不得不使用jQuery为每个数字生成标记,并设置一个计时器以每秒更新一次类。为了使我们的生活更轻松,我们将使用moment.js库(快速技巧)来弥补缺少的JavaScript本机日期和时间函数。

资产/js/script.js

$(函数() { //缓存一些选择器var clock = $('#clock'),
        alarm = clock.find('.alarm'),
        ampm = clock.find('.ampm'); //将数字映射到它们的名称(这将是一个数组)var digit_to_name = '零一二三四有五六七八有八' .split(''); //此对象将包含数字元素var digits = {}; //时,分和秒的位置var position = [
         'h1''h2'':''
    'm2'':''s1''s2' 
    ]; //生成具有所需标记的数字,//并将它们添加到时钟中var digit_holder = clock.find('.digits'); 
    $ .each(位置,函数

 { ifthis == ':'){ 
            digit_holder.append('<div class =“ dots”>'); 
        } else { var pos = $('<div>'); 对于var i = 1 ; i < 8 ; i ++){ 
                pos.append('<span class =“ d' + i + '”>'); 
            } //将数字设置为key:value对象对中的值对
            digits [ this ] = pos; //将数字元素添加到页面
        
            digit_holder.append(pos); 
        } 

    }); //添加工作日名称VAR weekday_names = '星期一星期二星期三星期四星期五星期六星期日' .split('' ),
        weekday_holder = clock.find(” .weekdays'); 
    $ .each(weekday_names,function  
 { 
        weekday_holder.append('<span>' + this + '</ span>'); 
    }); var weekdays = clock.find('.weekdays span'); //每秒运行一个计时器并更新时钟函数update_time
 { //使用moment.js以字符串形式输出当前时间// hh是12小时格式的小时,// mm-分钟,ss-seconds(均带有前导零),// d表示星期几,A代表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 ]]); //库返回星期日作为一周的第一天。//愚蠢,我知道。让我们将所有日期向下移动一个位置,//使星期日最后一个var dow = now [ 6 ]; 
        陶氏-; // 星期日!if(dow < 0){
             //使它最后一次
            dow = 6 ; 
        } //标记一周中
        工作日(daydays.removeClass('active'
        ).eq(dow).addClass('active'); //设置am / pm文本: 
        ampm.text(now [ 7 ] + now [ 8 ]); //安排此函数在1秒钟内再次运行
        setTimeout(update_time,1000); 
    })(); //切换主题
    $('a.button'.click函数
 { 
        clock.toggleClass('light dark'); 
    }); 

});

这里最重要的代码是update_time函数。在其中,我们以字符串形式获取当前时间,并用它来填充时钟的元素并为数字设置正确的类。

广告
广告图片
温馨提示 : 非特殊注明,否则均为©李联华的博客网原创文章,本站文章未经授权禁止任何形式转载;来自:俄亥俄州·哥伦布 ,欢迎您的访问!
文章链接:https://www.lilianhua.com/how-to-make-a-digital-clock-using-jquery-and-css3.html
请先登录才能参与答题
距本场结束剩 00 00 00 00
轻量应用服务器 2核2G
200M峰值带宽,适用于网站搭建、Web应用、容器环境、电商独立站等
立即前往
扫码进入
扫描二维码购买
文澜千文

文澜千文

请登录以使用此功能。

张君雅小妹妹 甜甜圈 巧克力味 45g 网红膨化食品 儿童零食 张君雅小妹妹 甜甜圈 巧克力味 45g 网红膨化食品 儿童零食
Loading...
OpenClaw

OpenClaw 龙虾

AI AGENT GATEWAY
在您的服务器部署 OpenClaw,打造专属极速 AI 助手。
零门槛一键部署环境
支持 QQ/飞书/微信 渠道
跨平台指令分发执行
立即安装