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 相关文章推荐
另类调用flash无须激活的方法
Dec 27 Javascript
javascript 操作文件 实现方法小结
Jul 02 Javascript
javascript IFrame 强制刷新代码
Jul 23 Javascript
javascript 控制 html元素 显示/隐藏实现代码
Sep 01 Javascript
jquery offset函数应用实例
Nov 14 Javascript
jquery实现页面图片等比例放大缩小功能
Feb 12 Javascript
Javascript中的几种继承方式对比分析
Mar 22 Javascript
分享jQuery网页元素拖拽插件
Dec 01 Javascript
第七篇Bootstrap表单布局实例代码详解(三种表单布局)
Jun 21 Javascript
less简单入门(CSS 预处理语言)
Mar 08 Javascript
Node.js dgram模块实现UDP通信示例代码
Sep 26 Javascript
vue语法自动转typescript(解放双手)
Sep 18 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
做一个有下拉功能的留言版
2006/10/09 PHP
第一节--面向对象编程
2006/11/16 PHP
PHP反射使用实例和PHP反射API的中文说明
2014/07/02 PHP
fsockopen pfsockopen函数被禁用,SMTP发送邮件不正常的解决方法
2015/09/20 PHP
如何修改Laravel中url()函数生成URL的根地址
2017/08/11 PHP
按钮JS复制文本框和表格的代码
2011/04/01 Javascript
动态添加删除表格行的js实现代码
2014/02/28 Javascript
asp.net中oracle 存储过程(图文)
2015/08/12 Javascript
使用jquery插件qrcode生成二维码
2015/10/22 Javascript
深入浅析NodeJs并发异步的回调处理
2015/12/21 NodeJs
通过JS获取Request.QueryString()参数的值实现方法
2016/09/27 Javascript
js判断价格,必须为数字且不能为负数的实现方法
2016/10/07 Javascript
详细讲解JavaScript中的this绑定
2016/10/10 Javascript
js实现右键菜单功能
2016/11/28 Javascript
JS 调用微信扫一扫功能
2016/12/22 Javascript
jquery广告无缝轮播实例
2017/01/05 Javascript
vue2 前端搜索实现示例
2018/02/26 Javascript
javascript开发实现贪吃蛇游戏
2020/07/31 Javascript
vue 子组件和父组件传值的示例
2020/09/11 Javascript
jQuery实现全选按钮
2021/01/01 jQuery
vue-cli中实现响应式布局的方法
2021/03/02 Vue.js
[01:05:12]2014 DOTA2国际邀请赛中国区预选赛 TongFu VS CIS-GAME
2014/05/21 DOTA
Python编程中归并排序算法的实现步骤详解
2016/05/04 Python
python读取excel表格生成erlang数据
2017/08/26 Python
使用PyQtGraph绘制精美的股票行情K线图的示例代码
2019/03/14 Python
python制作填词游戏步骤详解
2019/05/05 Python
如何在Django配置文件里配置session链接
2019/08/06 Python
解决python3中os.popen()出错的问题
2020/11/19 Python
美国东北部户外服装和设备零售商:Eastern Mountain Sports
2016/10/05 全球购物
以色列的身体护理及家居香薰品牌:Sabon NYC
2018/02/23 全球购物
主题婚礼策划方案
2014/02/10 职场文书
学生保证书范文
2014/04/28 职场文书
周一给客户的问候语
2015/11/10 职场文书
比赛口号霸气押韵
2015/12/24 职场文书
MySQL 慢查询日志深入理解
2021/04/22 MySQL
仅仅使用 HTML/CSS 实现各类进度条的方式汇总
2021/11/11 HTML / CSS