广告
返回顶部
首页 > 资讯 > 精选 >js怎么实现电子时钟功能
  • 314
分享到

js怎么实现电子时钟功能

2023-07-02 11:07:12 314人浏览 泡泡鱼
摘要

这篇“js怎么实现电子时钟功能”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“js怎么实现电子时钟功能”文章吧。先准备一个ht

这篇“js怎么实现电子时钟功能”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“js怎么实现电子时钟功能”文章吧。

先准备一个html元素,用来放置时钟。新建一个div元素,它的id命名为clock,如下所示:

<div id="clock" class="clock_con"></div><!--基础时钟元素-->

本实例电子时钟的格式设定为 (yyyy-MM-dd hh:mm:ss) ,用js来组合一个简单的时钟字符串放到clock元素中。

本实例把时钟功能封装到函数中,所以先创建一个creatClock函数,在creatClock中再来编写具体代码。

笔者建议在完成某一个前端功能时,应先分析功能的具体操作。再根据具体操作把实现功能的方法分成多个步骤,接下来一个步骤一个步骤去完成它。来看一下用js组合这样一串字符,需要哪些步骤:

1、调用date对象,获取计算机的本地时间

1 调用date对象
1.2 获取当前年份
1.3 获取当前月份,月份是从0开始计数,所以需要加1才是正确的月份
1.4 获取当前日期
1.5 获取当前小时
1.6 获取分钟
1.7 获取秒数

2、格式化获取到的时间数据

1 单数字前添加字符串0,用以符合时钟格式
2.2 组合时间数据为字符串

3、在clock元素中实时显示时间

1 获取clock元素
3.2 修改clock元素中的时间
3.3 使用定时器实时更新时间

具体代码如下:

function fnCreatClock(){  //声明时间相关变量  var dLocal,nYear,nMonth,nDate,nHours,nMinutes,nSeconds;  //1 获取计算机本地时间  function fnGetDate(){     //1.1 调用date对象    dLocal = new Date();    //1.2 获取当前年份    nYear = dLocal.getFullYear();     //1.3 获取当前月份,月份是从0开始计数,所以需要加1才是正确的月份    nMonth = dLocal.getMonth() + 1;     //1.4 获取当前日期    nDate = dLocal.getDate();     //1.5 获取当前小时    nHours = dLocal.getHours();     //1.6 获取分钟    nMinutes = dLocal.getMinutes();     //1.7 获取秒数    nSeconds = dLocal.getSeconds();   }  //2.1 封装一个函数,用于把单数字前添加字符串0,例如1改为01  function fnToDouble(num){      //声明一个返回结果    var sResult = '';     if(num<10){      //判断数字小于10则是单数字,需要在前面添加字符串0      sResult = '0' + num;    }else{      //数字为10以上转换为字符串      sResult = '' + num;    }    //返回格式化后的字符串    return sResult;   }  function fnFORMatDate(){    //2.2 组合时间数据为字符串。本实例主要针对初学者,所以这里用的是最简单的格式化方式,即把所有数据用+号相连    return nYear + '-' + fnToDouble(nMonth) + '-' + fnToDouble(nDate) +           ' ' + fnToDouble(nHours) + ':' + fnToDouble(nMinutes) + ':' + fnToDouble(nSeconds);  }  //3.1 获取clock元素  var eClock = document.getElementById('clock');   //获取时间   fnGetDate();  //3.2 修改clock元素中的时间  eClock.innerHTML = fnFormatDate();   //使用定时器实时更新时间  setInterval(function(){     //3.3 每秒更新时间    fnGetDate();      //3.3 修改clock元素中的时间    eClock.innerHTML = fnFormatDate();   },1000); }fnCreatClock();

此时的效果如图所示:

js怎么实现电子时钟功能

现在做出来的时钟看起来感觉有点简陋,也可以尝试把数字换成图片,这样所呈现效果就会好很多。这里暂时忽略日期部分,只为时间部分添加图片效果,还是先看一下需要哪些html元素,代码如下:

<div id="imGClock" class="clock_container"><!--图片时钟元素-->  <div id="imgHours" class="img_box">    <span class="img_0"></span>    <span class="img_0"></span>  </div>  <div class="img_point"></div>  <div id="imgMinutes" class="img_box">    <span class="img_0"></span>    <span class="img_0"></span>  </div>  <div class="img_point"></div>  <div id="imgSeconds" class="img_box">    <span class="img_0"></span>    <span class="img_0"></span>  </div></div>

还需要准备0-9共10张图片,可以在我随教程上传的资源中下载或自己制作。CSS代码可以自己根据需要编写,也可以复制以下代码使用:

.clock_container{    margin-top:60px;    font-size:0;    text-align:center;  }  .clock_container div{    display:inline-block;  }  .clock_container .img_box span{    display:inline-block;    width:80px;    height:100px;    margin:0 2px;    border-radius:8px;    background-color:#77a6b6;  }  .clock_container .img_0{    background:url(img/img_0.png) no-repeat;  }  .clock_container .img_1{    background:url(img/img_1.png) no-repeat;  }  .clock_container .img_2{    background:url(img/img_2.png) no-repeat;  }  .clock_container .img_3{    background:url(img/img_3.png) no-repeat;  }  .clock_container .img_4{    background:url(img/img_4.png) no-repeat;  }  .clock_container .img_5{    background:url(img/img_5.png) no-repeat;  }  .clock_container .img_6{    background:url(img/img_6.png) no-repeat;  }  .clock_container .img_7{    background:url(img/img_7.png) no-repeat;  }  .clock_container .img_8{    background:url(img/img_8.png) no-repeat;  }  .clock_container .img_9{    background:url(img/img_9.png) no-repeat;  }  .clock_container .img_point{    width:60px;    height:100px;    background:url(img/img_point.png) no-repeat center;  }

按照惯例,完成功能前先整理步骤。这里再多添加一个步骤,在imgClock元素中来完成图片美化后的时钟效果,步骤如下:

4、在imgClock元素中,用图片作为背景实时修改时间

1 分别获取时(imgHours)、分(imgMinutes)、秒(imgSeconds)元素
4.2 根据时间修改时、分、秒元素的class,用来改变背景样式
4.3 使用定时器更新元素背景

修改后的代码如下:

function fnCreatClock(){  //声明时间相关变量  var dLocal,nYear,nMonth,nDate,nHours,nMinutes,nSeconds;  //1 获取计算机本地时间  function fnGetDate(){     //1.1 调用date对象    dLocal = new Date();    //1.2 获取当前年份    nYear = dLocal.getFullYear();     //1.3 获取当前月份,月份是从0开始计数,所以需要加1才是正确的月份    nMonth = dLocal.getMonth() + 1;     //1.4 获取当前日期    nDate = dLocal.getDate();     //1.5 获取当前小时    nHours = dLocal.getHours();     //1.6 获取分钟    nMinutes = dLocal.getMinutes();     //1.7 获取秒数    nSeconds = dLocal.getSeconds();   }  //2.1 封装一个函数,用于把单数字前添加字符串0,例如1改为01  function fnToDouble(num){      //声明一个返回结果    var sResult = '';     if(num<10){      //判断数字小于10则是单数字,需要在前面添加字符串0      sResult = '0' + num;    }else{      //数字为10以上转换为字符串      sResult = '' + num;    }    //返回格式化后的字符串    return sResult;   }    //获取时间   fnGetDate();    //4.1 获取图片背景的小时元素  var eImgHours = document.getElementById('imgHours');  //获取小时的第一个元素  var eHours1 = eImgHours.getElementsByTagName('span')[0];   //获取小时的第二个元素   var eHours2 = eImgHours.getElementsByTagName('span')[1];    //4.1 获取图片背景的分钟元素  var eImgMinutes = document.getElementById('imgMinutes');  //获取分钟的第一个元素  var eMinutes1 = eImgMinutes.getElementsByTagName('span')[0];   //获取分钟的第二个元素   var eMinutes2 = eImgMinutes.getElementsByTagName('span')[1];    //4.1 获取图片背景的秒元素  var eImgSeconds = document.getElementById('imgSeconds');    //获取秒的第一个元素  var eSeconds1 = eImgSeconds.getElementsByTagName('span')[0];  //获取秒的第二个元素    var eSeconds2 = eImgSeconds.getElementsByTagName('span')[1];    // 4.2 根据时间修改时、分、秒元素的class,用来改变背景样式  function fnChangeImgBg(){     eHours1.className = 'img_' + fnGetImgNum(nHours,0);    eHours2.className = 'img_' + fnGetImgNum(nHours,1);    eMinutes1.className = 'img_' + fnGetImgNum(nMinutes,0);    eMinutes2.className = 'img_' + fnGetImgNum(nMinutes,1);    eSeconds1.className = 'img_' + fnGetImgNum(nSeconds,0);    eSeconds2.className = 'img_' + fnGetImgNum(nSeconds,1);  }  //此函数用来计算根据当前时间的数字  function fnGetImgNum(num,bit){     //声明一个返回结果    var nResult = 0;    //判断是个位还是十位,0代表十位,1代表个位      if(bit===0){        //使用Math.floor可以向下取整,即不管是0.1还是0.9,都是取整数0。此方法用来获取时间的十位      nResult = Math.floor(num/10);    }else{      //通过fnToDouble函数把时间格式化双字符串,再取后面一个字符获取个位,前面的+号用于转换为数字      nResult = +fnToDouble(num).slice(1);    }    return nResult;  }  fnChangeImgBg();  //使用定时器实时更新时间  setInterval(function(){     //3.3 每秒更新时间    fnGetDate();      fnChangeImgBg();  //4.3 使用定时器更新元素背景  },1000); }fnCreatClock();

此时的效果比单独的文字还是会增色不少,如图所示:

js怎么实现电子时钟功能

我想要求效果再漂亮一点,让图片不是很突兀的改变,而是有一个滚动的动画。要实现这样的效果,图片需要改成一张0-9的竖形排列图,也可以从我随教程的资源中下载。通过修改元素背景图片的位置,即可产生滚动的动画效果。

此效果需要的html元素如下所示:

<div id="animationClock" class="clock_container"><!--动画时钟元素-->  <div id="animationHours" class="animation_box">    <span></span>    <span></span>  </div>  <div class="img_point"></div>  <div id="animationMinutes" class="animation_box">    <span></span>    <span></span>  </div>  <div class="img_point"></div>  <div id="animationSeconds" class="animation_box">    <span></span>    <span></span>  </div></div>

在css里面给每一个元素加上同一个背景图片,需要加上transition过渡样式用来产生动画效果,如下所示:

.clock_container .animation_box span{  display:inline-block;  width:80px;  height:100px;  margin:0 2px;  border-radius:8px;  background-color:#77a6b6;  background-image:url(img/img_all.png);  background-repeat:no-repeat;  transition:.2s;}

再随着时间改变给每一个时间元素修改背景图片的位置,即修改background-repeat-y的样式即可。按照惯例,还是先列步骤:

5、在animationClock元素中,滚动动画显示时钟的实时变化

1 分别获取时(imgHours)、分(imgMinutes)、秒(imgSeconds)元素
5.2 根据时间修改时、分、秒元素的背景图片位置
5.3 使用定时器更新元素背景图片位置

修改后的代码如下:

function fnCreatClock(){  //声明时间相关变量  var dLocal,nYear,nMonth,nDate,nHours,nMinutes,nSeconds;  //1 获取计算机本地时间  function fnGetDate(){     //1.1 调用date对象    dLocal = new Date();    //1.2 获取当前年份    nYear = dLocal.getFullYear();     //1.3 获取当前月份,月份是从0开始计数,所以需要加1才是正确的月份    nMonth = dLocal.getMonth() + 1;     //1.4 获取当前日期    nDate = dLocal.getDate();     //1.5 获取当前小时    nHours = dLocal.getHours();     //1.6 获取分钟    nMinutes = dLocal.getMinutes();     //1.7 获取秒数    nSeconds = dLocal.getSeconds();   }  //2.1 封装一个函数,用于把单数字前添加字符串0,例如1改为01  function fnToDouble(num){      //声明一个返回结果    var sResult = '';     if(num<10){      //判断数字小于10则是单数字,需要在前面添加字符串0      sResult = '0' + num;    }else{      //数字为10以上转换为字符串      sResult = '' + num;    }    //返回格式化后的字符串    return sResult;   }   //获取时间   fnGetDate();    //此函数用来计算根据当前时间的数字  function fnGetImgNum(num,bit){     //声明一个返回结果    var nResult = 0;    //判断是个位还是十位,0代表十位,1代表个位      if(bit===0){        //使用Math.floor可以向下取整,即不管是0.1还是0.9,都是取整数0。此方法用来获取时间的十位      nResult = Math.floor(num/10);    }else{      //通过fnToDouble函数把时间格式化双字符串,再取后面一个字符获取个位,前面的+号用于转换为数字      nResult = +fnToDouble(num).slice(1);    }    return nResult;  }  //5.1 获取动画时钟的小时元素  var eAnimationHours = document.getElementById('animationHours');    //获取小时的第一个元素  var eHours3 = eAnimationHours.getElementsByTagName('span')[0];  //获取小时的第二个元素    var eHours4 = eAnimationHours.getElementsByTagName('span')[1];    //5.1 获取动画时钟的分钟元素  var eAnimationMinutes = document.getElementById('animationMinutes');  //获取分钟的第一个元素    var eMinutes3 = eAnimationMinutes.getElementsByTagName('span')[0];  //获取分钟的第二个元素    var eMinutes4 = eAnimationMinutes.getElementsByTagName('span')[1];    //5.1 获取动画时钟的秒元素  var eAnimationSeconds = document.getElementById('animationSeconds');  //获取秒的第一个元素    var eSeconds3 = eAnimationSeconds.getElementsByTagName('span')[0];  //获取秒的第二个元素    var eSeconds4 = eAnimationSeconds.getElementsByTagName('span')[1];    // 5.2 根据时间修改时、分、秒元素的背景图片位置  function fnAnimationBg(){    eHours3.style.backgroundPositionY = -fnGetImgNum(nHours,0) * 100 + 'px';    eHours4.style.backgroundPositionY = -fnGetImgNum(nHours,1) * 100 + 'px';    eMinutes3.style.backgroundPositionY = -fnGetImgNum(nMinutes,0) * 100 + 'px';    eMinutes4.style.backgroundPositionY = -fnGetImgNum(nMinutes,1) * 100 + 'px';    eSeconds3.style.backgroundPositionY = -fnGetImgNum(nSeconds,0) * 100 + 'px';    eSeconds4.style.backgroundPositionY = -fnGetImgNum(nSeconds,1) * 100 + 'px';  }  fnAnimationBg();  //使用定时器实时更新时间  setInterval(function(){     //3.3 每秒更新时间    fnGetDate();      //5.3 使用定时器更新元素背景图片位置    fnAnimationBg();  },1000); }fnCreatClock();

以上就是关于“js怎么实现电子时钟功能”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网精选频道。

--结束END--

本文标题: js怎么实现电子时钟功能

本文链接: https://www.lsjlt.com/news/341443.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • js怎么实现电子时钟功能
    这篇“js怎么实现电子时钟功能”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“js怎么实现电子时钟功能”文章吧。先准备一个ht...
    99+
    2023-07-02
  • js实现电子时钟功能
    电子时钟是网上常见的功能,在学习date对象和定时器功能时,来完成一个电子时钟的制作是不错的选择。学习本教程之前,读者需要具备html和css技能,同时需要有简单的javascrip...
    99+
    2022-11-13
  • 怎么使用JS实现电子时钟
    本篇内容介绍了“怎么使用JS实现电子时钟”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!代码呈上:<!DOCTYPE html...
    99+
    2023-07-02
  • 怎么用原生js实现电子时钟
    这篇文章主要介绍“怎么用原生js实现电子时钟”,在日常操作中,相信很多人在怎么用原生js实现电子时钟问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用原生js实现电子时钟”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-07-02
  • js实现电子时钟效果
    本文实例为大家分享了js实现电子时钟效果的具体代码,供大家参考,具体内容如下 代码区域 代码如下(示例): <!DOCTYPE html> <html lang="...
    99+
    2022-11-13
  • 原生js实现电子时钟
    本文实例为大家分享了js实现电子时钟的具体代码,供大家参考,具体内容如下 index.html <!DOCTYPE html> <html lang="en"&g...
    99+
    2022-11-13
  • JS实现电子时钟入门操作
    本文实例为大家分享了JS实现电子时钟入门操作的具体代码,供大家参考,具体内容如下 代码呈上: <!DOCTYPE html> <html lang="en">...
    99+
    2022-11-13
  • js+html+css实现简单电子时钟
    本文实例为大家分享了js+html+css实现简单电子时钟的具体代码,供大家参考,具体内容如下 最终结果: HTML部分 <!DOCTYPE html> <htm...
    99+
    2022-11-13
  • js如何实现电子时钟效果
    本篇内容主要讲解“js如何实现电子时钟效果”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“js如何实现电子时钟效果”吧!代码如下(示例):<!DOCTYPE html><...
    99+
    2023-07-02
  • Qt怎么实现电子时钟
    今天小编给大家分享一下Qt怎么实现电子时钟的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、项目介绍利用Qt实现显示与桌面上...
    99+
    2023-07-02
  • QT5实现电子时钟
    本文实例为大家分享了QT5实现电子时钟的具体代码,供大家参考,具体内容如下 一、电子时钟的显示 效果如下: 电子时钟显示 二、新建工程 Widgets Application项目名...
    99+
    2022-11-13
  • Qt实现电子时钟
    本文实例为大家分享了Qt实现电子时钟的具体代码,供大家参考,具体内容如下 进一步认识Qt中的属性,我们现在再做一个小练习,去实现一个简易版电子时钟的效果。 效果展示: 新建项目: ...
    99+
    2022-11-13
  • C++怎么实现电子时钟效果
    今天小编给大家分享一下C++怎么实现电子时钟效果的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。此精确到秒,因为有精度误差加上...
    99+
    2023-06-30
  • JavaScript实现网页电子时钟
    本文实例为大家分享了JavaScript实现网页电子时钟的具体代码,供大家参考,具体内容如下 如图就是一个简易的网页电子时钟,利用Javascript和 html和 css就可以制...
    99+
    2022-11-13
  • C++实现电子时钟效果
    本文实例为大家分享了C++实现电子时钟的具体代码,供大家参考,具体内容如下 此精确到秒,因为有精度误差加上从计算机获取初始时间时处理比较简单,因此运行一段时间会出现较大的误差。 代码...
    99+
    2022-11-13
  • JavaScript实现页面电子时钟
    本文实例为大家分享了JavaScript实现页面电子时钟的具体代码,供大家参考,具体内容如下 题目:页面上有一个电子时钟,显示当前的年月日,时分秒,要求自动变化,双位显示,例如:九点...
    99+
    2022-11-13
  • vue实现电子时钟效果
    本文实例为大家分享了vue实现电子时钟的具体代码,供大家参考,具体内容如下 html <div class="dateBox">       <div class...
    99+
    2022-11-13
  • 怎么使用JavaScript实现网页电子时钟
    这篇文章主要讲解了“怎么使用JavaScript实现网页电子时钟”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用JavaScript实现网页电子时钟”吧!如图就是一个简易的网页电子时钟...
    99+
    2023-07-02
  • JavaScript实现时钟功能
    本文实例为大家分享了JavaScript实现时钟功能的具体代码,供大家参考,具体内容如下 1、HTML和CSS部分 1.1 HTML部分 1.1.1先放在一个容器中clock,存放 ...
    99+
    2022-11-13
  • JavaScript如何实现页面电子时钟
    这篇文章主要介绍了JavaScript如何实现页面电子时钟的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JavaScript如何实现页面电子时钟文章都会有所收获,下面我们一起来看看吧。题目:页面上有一个电子时钟...
    99+
    2023-07-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作