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 相关文章推荐
JavaScript 拖拉缩放效果
Dec 10 Javascript
javascript StringBuilder类实现
Dec 22 Javascript
支持ie与FireFox的剪切板操作代码
Sep 28 Javascript
jQuery contains过滤器实现精确匹配使用方法
Apr 12 Javascript
如何调试异步加载页面里包含的js文件
Oct 30 Javascript
jQuery插件EasyUI设置datagrid的checkbox为禁用状态的方法
Aug 05 Javascript
实例解析Array和String方法
Dec 14 Javascript
xmlplus组件设计系列之路由(ViewStack)(7)
May 02 Javascript
Vue组件开发之LeanCloud带图形校验码的短信发送功能
Nov 07 Javascript
jQuery实现判断滚动条滚动到document底部的方法分析
Aug 27 jQuery
layui导出所有数据的例子
Sep 10 Javascript
JavaScript中的函数式编程详解
Aug 22 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 和 MySQL 基础教程(三)
2006/10/09 PHP
追求程序速度,而不是编程的速度
2008/04/23 PHP
php实现通用的信用卡验证类
2015/03/24 PHP
Zend Framework教程之配置文件application.ini解析
2016/03/10 PHP
php解压缩zip和rar压缩包文件的方法
2019/07/10 PHP
Smarty模板变量与调节器实例详解
2019/07/20 PHP
laravel框架模型和数据库基础操作实例详解
2020/01/25 PHP
Js的MessageBox
2006/12/03 Javascript
jquery jqPlot API 中文使用教程(非常强大的图表工具)
2011/08/15 Javascript
JQuery操作三大控件(下拉,单选,复选)的方法
2013/08/06 Javascript
Javascript基础教程之if条件语句
2015/01/18 Javascript
分享自己用JS做的扫雷小游戏
2016/02/17 Javascript
bootstrap中的 form表单属性role=&quot;form&quot;的作用详解
2017/01/20 Javascript
canvas的神奇用法
2017/02/03 Javascript
js实现3D图片环展示效果
2017/03/09 Javascript
jQuery鼠标移动图片上实现放大效果
2017/06/25 jQuery
egg.js的基本使用和调用数据库的方法示例
2019/05/18 Javascript
Vue两个版本的区别和使用方法(更深层次了解)
2020/02/16 Javascript
vue实现图片上传到后台
2020/06/29 Javascript
如何HttpServletRequest文件对象并储存
2020/08/14 Javascript
vue-quill-editor插入图片路径太长问题解决方法
2021/01/08 Vue.js
python 合并文件的具体实例
2013/08/08 Python
python文件操作之目录遍历实例分析
2015/05/20 Python
Python数据可视化 pyecharts实现各种统计图表过程详解
2019/08/15 Python
python列表生成器迭代器实例解析
2019/12/19 Python
Python小白垃圾回收机制入门
2020/06/09 Python
解决Keras 中加入lambda层无法正常载入模型问题
2020/06/16 Python
浅析Python打包时包含静态文件处理方法
2021/01/15 Python
html5绘制时钟动画
2014/12/15 HTML / CSS
HTML5触摸事件实现移动端简易进度条的实现方法
2018/05/04 HTML / CSS
澳大利亚领先的美容护肤品零售商之一:SkincareStore
2018/01/22 全球购物
澳大利亚顶级美发和美容贸易超市:glamaCo
2020/01/19 全球购物
Trench London官方网站:高级风衣和意大利皮夹克
2020/07/11 全球购物
介绍一下linux文件系统分配策略
2012/11/17 面试题
《故乡》教学反思
2014/04/10 职场文书
2016年班主任培训心得体会
2016/01/07 职场文书