JS实现页面炫酷的时钟特效示例


Posted in Javascript onAugust 14, 2022

一.前言

今天看到某网站的时间特别的丑陋,所以就诞生了写一个看时间的炫酷的时钟前端页面。 特点就是炫酷,特效好,个人以心情愉快的感觉。 对于时间的变化,我打算使用翻页的特效来完成,色系的话采用黑色以主题,给人一种神秘的感觉。

JS实现页面炫酷的时钟特效示例

而且要获取到本地的时间的数据来实时更新它的变化。

二.想法设计/实现过程

秉持着尽可能的美观炫酷,与用户的交互性好的原则,我初步的想法是,采用黑色系来增加可观性,写三个黑色框框分别代表小时,分钟,秒,然后获取到本地计算机或者服务器的时间数据,进行动态变化,而且对于数字的变化,采用翻页形式的改变对应的数字,从而增加可观性。 这就是稳定初步想法:

JS实现页面炫酷的时钟特效示例

三.基本样式

首先需要定义一下最外面的框子(clock)和外面最大的背景的颜色(大小,形式,透明度等等): 基本的css如下:

.clock {
      display: grid;
      padding: 0 12px;
      grid-template-columns: 1fr 1fr 1fr;
      grid-column-gap: 12px;
      min-width: 200px;
      height: var(--clockheight);
      border-radius: var(--radius);
      background-image: linear-gradient(
        rgb(14, 14, 15) 0%,
        rgb(26, 25, 28) 20%,
        rgb(44, 44, 52) 50%,
        rgb(20, 20, 27) 100%
      );
      box-shadow: inset 0 -3px 6px 3px rgba(0, 0, 0, 0.2),
        inset 0 4px 8px 3px rgba(0, 0, 0, 0.4),
        0 2px 3px 1px rgba(255, 255, 255, 0.3), 0 -2px 4px 4px rgba(56, 56, 61, 0.5);
    }

最外面的盒子模型:

<div class="clock">
 </div>

目前效果如下:

JS实现页面炫酷的时钟特效示例

四.时间函数控制器

因为是炫酷的时钟特效,外面首先要考虑的是对于时间的计算以及获取的问题:思考一个问题,我们的目前时间可以很容易的从系统时间获取,但是,翻页与变化是需要我们额外的去控制的。所以需要我们额外的去写的。

var date = new Date();
  var seconds = date.getSeconds().toString();
  if (seconds.length == 1) {
    seconds = "0" + seconds;
  }
  var minutes = date.getMinutes().toString();
  if (minutes.length == 1) {
    minutes = "0" + minutes;
  }
  var hour = date.getHours();
  if (hour > 12) {
    hour = hour - 12;
  }
  if (hour == 0) {
    hour = 12;
  }
  hour = hour.toString();
  if (hour.length == 1) {
    hour = "0" + hour;
  }
  if ($(myhour[0]).text() !== hour) {
    flipNumber($(myhour[0]).closest(".flipper"), hour);
  }
  if ($(myminute[0]).text() !== minutes) {
    flipNumber($(myminute[0]).closest(".flipper"), minutes);
  }
  if ($(mysecond[0]).text() !== seconds) {
    flipNumber($(mysecond[0]).closest(".flipper"), seconds);
  }

为了适应变化,异步变化的特性,我们需要额外写一个延迟函数,来控制,不让他们同时出现,增加可观性:

setTimeout(function () {
    setTime();
  }, 500);

当然,不要忘记第一步的引入工作,我们目前使用俩个前端框架,分别是jquery和bootstrap。这样可以加快我们开发的速度。

<script type="text/javascript" src="https://repo.bfw.wiki/bfwrepo/js/jquery-3.2.1.min.js"></script>
    <script type="text/javascript" src="https://repo.bfw.wiki/bfwrepo/js/bootstrap.4.3.1.min.js"></script>

五,时,分,秒占位

我们之前已经写了背景的样式与最外面的框子的样式,现在我们的时,分,秒都还没有写,所以,我们把他分为三部分:

JS实现页面炫酷的时钟特效示例

一个类似这样的样式效果,html代码样式盒子如下:

<div class="flipper">
<div class="gear"></div>
<div class="gear"></div>
<div class="top">
    <div class="text">00</div>
</div>
<div class="bottom">
    <div class="text">00</div>
</div>
</div>

这样重复3次,分别对应着时,分,秒,给他们占位。

六.时间动态填充

现在,我们的位置已经写好样式了,我们需要使用JavaScript来动态的填充更换我们的当时的时间数字:

function flipNumber(el, newnumber) {
  var thistop = el.find(".top").clone();
  var thisbottom = el.find(".bottom").clone();
  thistop.addClass("new");
  thisbottom.addClass("new");
  thisbottom.find(".text").text(newnumber);
  el.find(".top").after(thistop);
  el.find(".top.new").append(thisbottom);
  el.addClass("flipping");
  el.find(".top:not(.new)").find(".text").text(newnumber);
  setTimeout(function () {
    el.find(".bottom:not(.new)").find(".text").text(newnumber);
  }, 500);
}

最后的效果图如下:

JS实现页面炫酷的时钟特效示例

以上就是JS实现页面炫酷的时钟特效示例的详细内容,更多关于JS页面时钟的资料请关注三水点靠木其它相关文章!

Javascript 相关文章推荐
在IE,Firefox,Safari,Chrome,Opera浏览器上调试javascript
Dec 02 Javascript
用js做一个小游戏平台 (一)
Dec 29 Javascript
jQueryUI如何自定义组件实现代码
Nov 14 Javascript
javascript常用的方法整理
Aug 20 Javascript
JavaScript动态插入CSS的方法
Dec 10 Javascript
有趣的bootstrap走动进度条
Dec 01 Javascript
babel基本使用详解
Feb 17 Javascript
JS验证input输入框(字母,数字,符号,中文)
Mar 23 Javascript
微信小程序 es6-promise.js封装请求与处理异步进程
Jun 12 Javascript
Bootbox将后台JSON数据填充Form表单的实例代码
Sep 10 Javascript
浅谈ECMAScript 中的Array类型
Jun 10 Javascript
elementui的el-popover修改样式不生效的解决
Jun 30 Javascript
Rust中的Struct使用示例详解
Aug 14 #Javascript
使用Cargo工具高效创建Rust项目
Aug 14 #Javascript
JS实现刷新网页后之前浏览位置保持不变示例详解
Aug 14 #Javascript
vue本地构建热更新卡顿的问题“75 advanced module optimization”完美解决方案
Aug 05 #Vue.js
Vue深入理解插槽slot的使用
Aug 05 #Vue.js
React如何使用axios请求数据并把数据渲染到组件
Aug 05 #Javascript
使用JS前端技术实现静态图片局部流动效果
Aug 05 #Javascript
You might like
PHP实现指定字段的多维数组排序函数分享
2015/03/09 PHP
Yii2 rbac权限控制之rule教程详解
2016/06/23 PHP
JavaScript prototype属性使用说明
2010/05/13 Javascript
Jquery写一个鼠标拖动效果实现原理与代码
2012/12/24 Javascript
设为首页加入收藏兼容360/火狐/谷歌/IE等主流浏览器的代码
2013/03/26 Javascript
javascript setTimeout和setInterval计时的区别详解
2013/06/21 Javascript
jquery和javascript的区别(常用方法比较)
2013/07/04 Javascript
js中的cookie的读写操作示例详解
2014/04/17 Javascript
javascript模拟实现ajax加载框实例
2014/10/15 Javascript
JavaScript学习笔记之JS事件对象
2015/01/22 Javascript
JavaScript之数组(Array)详解
2015/04/01 Javascript
初步使用Node连接Mysql数据库
2016/03/03 Javascript
完美解决node.js中使用https请求报CERT_UNTRUSTED的问题
2017/01/08 Javascript
bootstrap 下拉多选框进行多选传值问题代码分析
2017/02/14 Javascript
AngularJS解决ng-if中的ng-model值无效的问题
2017/06/21 Javascript
vue中使用heatmapjs的示例代码(结合百度地图)
2018/09/05 Javascript
Vue发布订阅模式实现过程图解
2020/04/30 Javascript
深入分析jQuery.one() 函数
2020/06/03 jQuery
微信小程序实现点赞业务
2021/02/10 Javascript
Python设计实现的计算器功能完整实例
2017/08/18 Python
Django+uni-app实现数据通信中的请求跨域的示例代码
2019/10/12 Python
SmartBuyGlasses美国官网:太阳眼镜和眼镜
2017/08/20 全球购物
斐乐美国官方网站:FILA美国
2019/03/01 全球购物
澳大利亚家用电器在线商店:Billy Guyatts
2020/05/05 全球购物
药剂学专业应届生自荐信
2013/09/29 职场文书
营业员个人总结的自我评价
2013/10/25 职场文书
电子专业推荐信范文
2013/11/18 职场文书
班主任经验交流会主持词
2014/04/01 职场文书
解除合同协议书
2014/04/17 职场文书
文明和谐家庭事迹材料
2014/05/18 职场文书
律师授权委托书范本
2014/10/07 职场文书
六一儿童节标语
2014/10/08 职场文书
新教师2015年度工作总结
2015/07/22 职场文书
校长新学期寄语2016
2015/12/04 职场文书
纪检干部学习心得体会
2016/01/23 职场文书
python标准库ElementTree处理xml
2022/05/20 Python