(二)原生js案例之数码时钟计时

原生js实现的数字时间上下切换显示时间的效果,有参考相关设计,思路比较难,代码其实很简单

效果

请添加图片描述

代码实现

  • 必要的样式
  <style>* {padding: 0;margin: 0;}.content{/* text-align: center; */display: flex;align-items: center;justify-content: center;flex-direction: column;height: 100vh;background: linear-gradient(202deg,#F3E7E9 0%,#FFFFFF 53%,#E3EEFF 100%); }#title{margin:20px;font-size: 40px;}ul {list-style: none;overflow: hidden;}li {float: left;}li.time-box {width: 122px;height: 172px;overflow: hidden;position: relative;}li.colon{animation: dotLignt 1s linear infinite alternate;font-size: 80px;height: 172px;line-height: 172px;font-family: 'Franklin Gothic Medium', 'Arial Narrow', Arial, sans-serif;}/* 闪烁东湖*/@keyframes dotLignt {0% {opacity: 1;}50% {opacity: 50%;}100% {opacity: 0;}}</style>
  • 静态页面
<div class="content"><h2 id="title"></h2><p id="time"></p><ul><li id="h1" class="time-box"><img class="time" src="./img/0.JPG" alt="" srcset="" /></li><li id="h2" class="time-box"><img class="time" src="./img/1.JPG" alt="" srcset="" /></li><li class="colon"><span>:</span></li><li id="fen1" class="time-box"><img class="time" src="./img/2.JPG" alt="" srcset="" /></li><li id="fen2" class="time-box"><img class="time" src="./img/3.JPG" alt="" srcset="" /></li><li class="colon"><span>:</span></li><li id="miao1" class="time-box"><img class="time" src="./img/4.JPG" alt="" srcset="" /></li><li id="miao2" class="time-box up"><img class="time" src="./img/5.JPG" alt="" srcset="" /></li></ul></div> 
  • js核心代码
    window.onload = function () {const oBody = document.bodyconst oP = oBody.querySelector('#time')const oTitle = document.querySelector('#title')const oImg = document.querySelectorAll('img.time')const oH1 = document.querySelector('#h1')const oH2 = document.querySelector('#h2')const oFen1 = document.querySelector('#fen1')const oFen2 = document.querySelector('#fen2')const oMiao1 = document.querySelector('#miao1')const oMiao2 = document.querySelector('#miao2')let isInit = truefnTime()function fnTime() {const myTime = new Date()const year = myTime.getFullYear()const month = myTime.getMonth() + 1const day = myTime.getDate()const hour = myTime.getHours()const minute = myTime.getMinutes()const second = myTime.getSeconds()//星期let week = myTime.getDay()switch (week) {case 0:week = '星期日'breakcase 1:week = '星期一'breakcase 2:week = '星期二'breakcase 3:week = '星期三'breakcase 4:week = '星期四'breakcase 5:week = '星期五'breakcase 6:week = '星期六'breakdefault:week = ''}const time = fnAddZero(hour) + fnAddZero(minute) + fnAddZero(second)// oP.innerHTML = timeoTitle.innerHTML = year + '年' + month + '月' + day + '日' + week//初始化加载一次,防止刷新的时候出现闪屏if(isInit){for (let i = 0; i < oImg.length; i++) {oImg[i].src = `./img/${time.charAt(i)}.JPG`}}isInit = falsereturn time}//辅助方法,补0function fnAddZero(num) {if (num < 10) {return '0' + num}return '' + num}let ht1=0;let h1 = 0setInterval(function () {let a = fnTime();//获得当前的子结点if(a[0] != h1){h1 = a[0];let childImg = oH1.getElementsByTagName('img')[0];let imgM = document.createElement('img');imgM.src='img/'+a[0]+'.jpg';oH1.appendChild(imgM);let m2 = setInterval(function () {ht1+=1;oH1.scrollTop=ht1;if (ht1>=70){clearInterval(m2);setTimeout(function () {childImg.remove();ht1=0;},100)}},1)}},1000);let ht2=0;let h2 = 0setInterval(function () {let a = fnTime();//获得当前的子结点if(a[1] != h2){h2 = a[1];let childImg = oH2.getElementsByTagName('img')[0];let imgM = document.createElement('img');imgM.src='img/'+a[1]+'.jpg';oH2.appendChild(imgM);let m2 = setInterval(function () {ht2+=1;oH2.scrollTop=ht2;if (ht2>=70){clearInterval(m2);setTimeout(function () {childImg.remove();ht2=0;},100)}},1)}},1000);let ft1=0;let f1 = 0setInterval(function () {let a = fnTime();//获得当前的子结点if(a[2] != f1){f1 = a[2];let childImg = oFen1.getElementsByTagName('img')[0];let imgM = document.createElement('img');imgM.src='img/'+a[2]+'.jpg';oFen1.appendChild(imgM);let m2 = setInterval(function () {ft1+=1;// console.log(mt2);oFen1.scrollTop=ft1;if (ft1>=70){clearInterval(m2);setTimeout(function () {childImg.remove();ft1=0;},100)}},1)}},1000);let ft2=0;let f2 = 0setInterval(function () {let a = fnTime();//获得当前的子结点if(a[3] != f2){f2 = a[3];let childImg = oFen2.getElementsByTagName('img')[0];let imgM = document.createElement('img');imgM.src='img/'+a[3]+'.jpg';oFen2.appendChild(imgM);let m2 = setInterval(function () {ft2+=1;oFen2.scrollTop=ft2;if (ft2>=70){clearInterval(m2);setTimeout(function () {childImg.remove();ft2=0;},100)}},1)}},1000);let mt1=0;let m1 = 0setInterval(function () {let a = fnTime();console.log("🚀 ~ a:", a)//获得当前的子结点if(a[4] != m1){console.log("🚀 ~ m1:", m1)console.log("🚀 ~ a[4]:", a[4])m1 = a[4];let childImg = oMiao1.getElementsByTagName('img')[0];let imgM = document.createElement('img');imgM.src='img/'+a[4]+'.jpg';oMiao1.appendChild(imgM);let m2 = setInterval(function () {mt1+=1;// console.log(mt2);oMiao1.scrollTop=mt1;if (mt1>=70){clearInterval(m2);setTimeout(function () {childImg.remove();mt1=0;},100)}},1)}},1000);let mt2=0;setInterval(function () {let a = fnTime();//获得当前的子结点let childImg = oMiao2.getElementsByTagName('img')[0];let imgM = document.createElement('img');imgM.src='img/'+a[5]+'.jpg';oMiao2.appendChild(imgM);let m2 = setInterval(function () {mt2+=1;// console.log(mt2);oMiao2.scrollTop=mt2;if (mt2>=70){clearInterval(m2);setTimeout(function () {childImg.remove();mt2=0;},100)}},1)},1000);}

这样就实现了我们的数字时间的切换效果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/48319.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

光盘防水嘛 ? DVD+R 刻录光盘泡水实验

首发日期 2024-07-20, 以下为原文内容: 同志们好, 欢迎来到 胖喵穷人实验室 ! 这里专注于 低成本, 低难度, 低风险 的 “三低” 小实验. 胖喵穷人实验室 (PM-PLab-E)正式名称: 紫腹巨蚊 (Toxorhynchites gravelyi) 系列穷人 (Poor people) 实验室风险警告: 低风险并不是零风险…

人工智能与语音识别:技术进步与应用前景

引言 人工智能&#xff08;AI&#xff09;作为当今科技进步的核心驱动力&#xff0c;正在各个领域展现其变革力量。其中&#xff0c;语音识别技术作为人工智能的重要应用之一&#xff0c;已经深入到我们的日常生活和工作中。从智能助手如Siri、Google Assistant&#xff0c;到智…

kubernetes k8s Deployment 控制器配置管理 k8s 红蓝部署 金丝雀发布

目录 1、Deployment控制器&#xff1a;概念、原理解读 1.1 Deployment概述 1.2 Deployment工作原理&#xff1a;如何管理rs和Pod&#xff1f; 2、Deployment资源清单文件编写技巧 3、Deployment使用案例&#xff1a;创建一个web站点 4、Deployment管理pod&#xff1a;扩…

科研绘图系列:R语言雨云图(Raincloud plot)

介绍 雨云图(Raincloud plot)是一种数据可视化工具,它结合了多种数据展示方式,旨在提供对数据集的全面了解。雨云图通常包括以下几个部分: 密度图(Density plot):表示数据的分布情况,密度图的曲线可以展示数据在不同数值区间的密度。箱线图(Box plot):显示数据的中…

模型剪枝入门

一、定义 1.定义 2. 案例1 3. 全局剪枝案例 4. 全局剪枝案例 5. 自定义剪枝 6. 特定网络剪枝 7. 多参数模块剪枝 8. torch.nn.utils.prune 解读 二、实现 定义 接口&#xff1a; import torch.nn.utils.prune as prune案例1 import torch.nn as nn import torch.nn.utils.…

全部由1组成的子矩形的数量

题目描述&#xff1a; 给定一个二维数组matrix&#xff0c;其中的值不是0就是1&#xff0c;返回全部由1组成的子矩阵的数量。 way&#xff1a; 假设我们遍历矩形的每一行&#xff0c;以当前遍历到的行作为地基&#xff0c;去看这一行的直方图&#xff08;直方图介绍 ->直方…

10.3.3 QGIS点类型注释(Annotation)的应用与二次开发实现

文章目录 前言注释(Annotation)图层QGis中的注释(Annotation)图层二次开发实现线段类型注释(Annotation)点类型Item 总结 前言 介绍注释(Annotation)图层在QGis中的使用以及二次开发的实现说明&#xff1a;文章中的示例代码均来自开源项目qgis_cpp_api_apps 注释(Annotation)…

【Unity实战100例】Unity声音可视化多种显示效果

目录 一、技术背景 二、界面搭建 三、 实现 UIAudioVisualizer 基类 四、实现 AudioSampler 类 五、实现 IAudioSample 接口 六、实现MusicAudioVisualizer 七、实现 MicrophoneAudioManager 类 八、实现 MicrophoneAudioVisualizer 类 九、源码下载 Unity声音可视化四…

代码随想录算法训练营第九天 |LeetCode151.翻转字符串里的单词 卡码网:55.右旋转字符串

代码随想录算法训练营 Day 9 代码随想录算法训练营第九天 |LeetCode151.翻转字符串里的单词 卡码网&#xff1a;55.右旋转字符串 目录 代码随想录算法训练营前言LeetCode151.翻转字符串里的单词卡码网&#xff1a;55.右旋转字符串 一、LeetCode151.翻转字符串里的单词1.题目链…

laravel为Model设置全局作用域

如果一个项目中存在这么一个sql条件在任何情况下或大多数情况都会被使用&#xff0c;同时很容易被开发者遗忘&#xff0c;那么就非常适用于今天要提到的这个功能&#xff0c;Eloquent\Model的全局作用域。 首先看一个示例&#xff0c;有个数据表&#xff0c;结构如下&#xff1…

一款国外开发的高质量WordPress下载站模板主题

5play下载站是由国外站长开发的一款WordPress主题&#xff0c;主题简约大方&#xff0c;为v1.8版本&#xff0c; 该主题模板中包含了上千个应用&#xff0c;登录后台以后只需要简单的三个步骤就可以轻松发布apk文章&#xff0c; 我们只需要在WordPress后台中导入该主题就可以…

大模型应用如何点燃?

▎****尽管在中国&#xff0c;关于大模型的商业模式的讨论尚显早期&#xff0c;但智能体&#xff0c;尤其是专业智能体&#xff0c;蕴藏着巨大的潜力。 ChatGPT 还没有颠覆世界。 身处“第三次信息革命”&#xff0c;很多人被浓烈的FOMO&#xff08;Fear of Missing Out&…

昇思25天学习打卡营第12天 | ResNet50图像分类

ResNet50在CIFAR-10数据集上的图像分类实践 在深入学习和实践使用ResNet50进行CIFAR-10数据集上的图像分类后&#xff0c;我对深度学习模型的构建、训练和优化有了更深刻的理解。本次学习经历涵盖了从理论探索到实际应用的全过程&#xff0c;以下是我的主要收获和反思。 1. 理…

(南京观海微电子)——电感的电路原理及应用区别

电感 电感是导线内通过交流电流时&#xff0c;在导线的内部及其周围产生交变磁通&#xff0c;导线的磁通量与生产此磁通的电流之比。 当电感中通过直流电流时&#xff0c;其周围只呈现固定的磁力线&#xff0c;不随时间而变化&#xff1b;可是当在线圈中通过交流电流时&am…

Jump Point Search(JPS)算法与A*算法

A* A*算法本质上讲是结合了DFS和BFS&#xff0c;针对当前起点先做一次BFS&#xff0c;再针对搜索的八个点做一次DFS BFS--广度优先算法&#xff08;Breadth First Search&#xff09; DFS A* 算法思想 A*的核心思想就是先进行一次BFS搜索&#xff0c;然后从这次BFS中找到距离…

python Requests库7种主要方法及13个控制参数(实例实验)

文章目录 一、Requests库的7种主要方法二、kwargs:控制访问的13个参数 一、Requests库的7种主要方法 序号方法说明1requests.request()&#xff1a;提交一个request请求&#xff0c;作为其他请求的基础2requests.get()&#xff1a;获取HTML网页代码的方法3requests.head()&…

基于重要抽样的主动学习不平衡分类方法ALIS

这篇论文讨论了数据分布不平衡对分类器性能造成的影响,并提出了一种新的有效解决方案 - 主动学习框架ALIS。 1、数据分布不平衡会影响分类器的学习性能。现有的方法主要集中在过采样少数类或欠采样多数类,但往往只采用单一的采样技术,无法有效解决严重的类别不平衡问题。 2、论…

9种二极管及其特点总结

二极管种类和特点 名字特点恒流二极管近些年出现&#xff0c;电压大于某个值&#xff0c;电流恒定&#xff0c;一般用于led普通二极管低频整流和续流&#xff0c;便宜&#xff0c;反向恢复时间us级别&#xff0c;PN结肖特基二极管比普通二极管反向关断更快&#xff0c;10ns级别…

智能硬件——0-1开发流程

文章目录 流程图1. 市场分析具体分析 2. 团队组建2. 团队组建早期团队配置建议配置一&#xff1a;基础型团队 (4人)配置二&#xff1a;扩展型团队 (6人)配置三&#xff1a;全面型团队 (7人) 3. 产品需求分析4. ID设计&#xff08;Industrial Design, 工业设计&#xff09;5. 结…

阿里云公共DNS免费版自9月30日开始限速 企业或商业场景需使用付费版

本周阿里云发布公告对公共 DNS 免费版使用政策进行调整&#xff0c;免费版将从 2024 年 9 月 30 日开始按照请求源 IP 进行并发数限制&#xff0c;单个 IP 的请求数超过 20QPS、UDP/TCP 流量超过 2000bps 将触发限速策略。 阿里云称免费版的并发数限制并非采用固定的阈值&…