今天我看到百度搜索的时间那个效果不错,于是就产生了模仿一下的效果,不过为了节省时间,就随便布了下局,废话不多说,先看看效果吧,顺便把百度的效果也拿过来。

对比样子差了好多啊,但是基本功能都是实现了的,只要修改样式就好了,我的美感特别差,所以就……

我用的是css3和js实现的这个效果,渐变是由css3的linear-gradient实现,当然js也有实现的办法,不过js实现到底不如css3实现简单,所以就不赘述了。有兴趣的可以下来自己看看。

时钟的旋转是由css的transform:rotate实现,js进行控制。

废话不多说,直接来代码。首先就是html标签

<div id="tab">
<div id="Tradion">
<div id="hours" class="tran"></div>
<div id="minutes" class="tran"></div>
<div id="seconds" class="tran"></div>
<div id="dian"></div> </div>
<h1 id="aTime"></h1>
<h3 id="aDate"></h3>
<h2 id="week"></h2>
</div>

这个代码没什么,css布局代码如下:

<style type="text/css">
#tab{
width: 500px;
height: 200px;
/*background:-webkit-gradient(linear,center top,center bottom,from(blue), to(white));*/
background: -webkit-linear-gradient(top,#007fff,#84bff9);/*css3设置渐变*/
margin-bottom: 100px;
}
#aTime{
color: #fff;
/*text-align: center;*/
/*line-height: 200px;*/
float: left;
}
#Tradion{
width: 100px;
height: 100px;
border: 2px solid #fff;
border-radius: 100px;
float: left;
margin: 50px 50px;
}
#hours{
width: 30px;
height: 2px;
margin:50px 50px;
background: #fff;
transform-origin: left bottom;
}
#minutes{
width: 38px;
height: 2px;
background: #fff;
margin:-50px 50px;
transform-origin: left bottom;
transform:rotate(0deg);
}
#seconds{
width: 45px;
height: 1px;
background: #fff;
margin:50px 50px;
transform-origin: left bottom;
transform:rotate(0deg); }
.tran{
transform: rotate(-90deg);/*这里测试了一下旋转角*/
}
#dian{
width:6px;
height: 6px;
border-radius: 6px;
background: #fff;
margin:-55px 46px;
}
#aDate,#week{
color: #fff;
padding-top: 50px;
}
</style>

实现了css之后的效果是这样的

只有一个时钟的样子,接下来就是js进行控制了

首先来时间显示和钟表转动的代码

<script type="text/javascript">
window.onload=function(){
function addzero(num){
if(num>=10)
{
return ""+num;
}
else
{
return "0"+num;
}
} function times(){
var date=new Date();
var aTime=document.getElementById('aTime');
var str= addzero(date.getHours())+":"+ addzero(date.getMinutes())+":"+ addzero(date.getSeconds());
aTime.innerHTML=str;
}
setInterval(times,1000);
times();
function Ttranform(){
var date=new Date();
var hours=document.getElementById('hours');
var minutes=document.getElementById('minutes');
var seconds=document.getElementById('seconds');
var num=date.getHours();
var num2=date.getMinutes();
var num3=date.getSeconds();
hours.style.transform="rotate("+(num*30-90)+"deg)";
minutes.style.transform="rotate("+(num2*6-90)+"deg)";
seconds.style.transform="rotate("+(num3*6-90)+"deg)"; }
setInterval(Ttranform,1000);
Ttranform();
}
</script>

还差一个日期的显示代码,这个就简单了,完全跟时间显示的一样啊,

<script type="text/javascript">
function Adate(){
var date=new Date();
var aDate=document.getElementById("aDate");
var week=document.getElementById('week');
var weekList=["星期天","星期一","星期二","星期三","星期四","星期五","星期六"];
var str= date.getFullYear()+"-"+(date.getMonth()+1)+"-"+ date.getDate();
aDate.innerHTML=str;
var westr=weekList[date.getDay()];
week.innerHTML=westr;
}
Adate();
</script>

先说一下啊,时间显示 getMonth()他认为这个月是从0开始的

getDate(日)
getDay(星期 0 1 2 3 4 5 6 )

这两个函数也不要弄混了哦。

 hours.style.transform="rotate("+(num*30-90)+"deg)";
minutes.style.transform="rotate("+(num2*6-90)+"deg)";
seconds.style.transform="rotate("+(num3*6-90)+"deg)";
角度计算为什么要减90deg是因为我的初始角度是90度,大家如果要是从0度开始就不能减了。
上面就是我所实现的简单的时钟效果,是不是特别简单啊。大家自己可以试着改进,我这个实现还是太low,希望你们能够做出更好的效果。

史上最简单的js+css3实现时钟效果的更多相关文章

  1. 史上最简单,js并获取手机型号

    原先获取不了苹果系列的型号,但转换思路,先推断是否是苹果,再用分辨率获取型号 //获取手机型号函数begin function getPhoneType(){  //正则,忽略大写和小写 var pa ...

  2. 史上最简单,一步集成侧滑(删除)菜单,高仿QQ、IOS。

    重要的话 开头说,not for the RecyclerView or ListView, for the Any ViewGroup. 本控件不依赖任何父布局,不是针对 RecyclerView. ...

  3. [分享] 史上最简单的封装教程,五分钟学会封装系统(以封装Windows 7为例)

    [分享] 史上最简单的封装教程,五分钟学会封装系统(以封装Windows 7为例) 踏雁寻花 发表于 2015-8-23 23:31:28 https://www.itsk.com/thread-35 ...

  4. 史上最简单的 SpringCloud 教程

    史上最简单的 SpringCloud 教程 | 第一篇: 服务的注册与发现(Eureka)史上最简单的SpringCloud教程 | 第二篇: 服务消费者(rest+ribbon)史上最简单的Spri ...

  5. 史上最简单的 SpringCloud 教程 | 终章

    https://blog.csdn.net/forezp/article/details/70148833转载请标明出处:http://blog.csdn.net/forezp/article/det ...

  6. 史上最简单的 GitHub 教程

    史上最简单的 GitHub 教程 温馨提示:本系列博文已经同步到 GitHub,如有需要的话,欢迎大家到「github-tutorial」进行Star和Fork操作! 1 简介 GitHub 是一个面 ...

  7. (转) 史上最简单的 SpringCloud 教程 | 第一篇: 服务的注册与发现(Eureka)

    一.spring cloud简介 spring cloud 为开发人员提供了快速构建分布式系统的一些工具,包括配置管理.服务发现.断路器.路由.微代理.事件总线.全局锁.决策竞选.分布式会话等等.它运 ...

  8. 史上最简单的SpringCloud教程 | 第十篇: 高可用的服务注册中心(Finchley版本)

    转载请标明出处: 原文首发于 https://www.fangzhipeng.com/springcloud/2018/08/30/sc-f10-eureka/ 本文出自方志朋的博客 文章 史上最简单 ...

  9. 史上最简单的 MySQL 教程(十五)「列属性 之 自动增长」

    自动增长 自动增长:auto_increment,当对应的字段,不给值,或者是默认值,或者是null的时候,就会自动的被系统触发,系统会从当前字段中取已有的最大值再进行+1操作,得到新的字段值. 自增 ...

随机推荐

  1. Ubuntu下deb包的解压、打包、安装、卸载及常用命令参数

    1.首先下载deb包,比如:将其放在 /home/tools/ 根目录下: 2.进入到tools根目录下的终端,输入下面命令创建文件夹extract,并在extract文件夹下创建DEBIAN文件夹 ...

  2. 学习图像算法阶段性总结 (附一键修图Demo)

    今天特别感慨.自己从决定研究图像处理.势必要做出一键修图算法. 经历了,三个多月的书籍积累,三个多月的算法调整以及优化. 人是一种奇怪的动物.当你做不到的时候,你以为做到了.自己会感觉非常爽,非常有成 ...

  3. java 可变參数列表

    Java SE5加入了可变參数列表特性 參数能够这样定义.(Object-args).可变參数用"..."来定义,args是可变參数的数组.举个样例: package sample ...

  4. 002Java概述

    1Sun(Stanford University Network )公司1995年推出的高级编程语言 2.面向Internet的编程语言 3.已经成为web应用程序的首选开发语言 4.完全面向对象简单 ...

  5. 游戏AI-行为树理论及实现

    从上古卷轴中形形色色的人物,到NBA2K中挥洒汗水的球员,从使命召唤中诡计多端的敌人,到刺客信条中栩栩如生的人群.游戏AI几乎存在于游戏中的每个角落,默默构建出一个令人神往的庞大游戏世界. 那么这些复 ...

  6. QQ 相册后台存储架构重构与跨 IDC 容灾实践

    欢迎大家前往云加社区,获取更多腾讯海量技术实践干货哦~ 作者简介:xianmau,2015 年加入腾讯 TEG 架构平台部,一直负责 QQ 相册平台的维护和建设,主导相册上传架构重构和容灾优化等工作. ...

  7. 自学Python3.2-函数分类

    函数的分类 内置函数,自定义函数,匿名函数 一.内置函数(python3.x) 内置参数详解官方文档: https://docs.python.org/3/library/functions.html ...

  8. android 使用Ksoap2工具类实现WebService网络编程

    1.下载Ksoap2,将jar包拷贝到libs目录下.然后右键点击拷贝进来的jar,在弹出菜单中点击Add As Library. 2.在AndroidManifest.xml中添加访问网络的权限 & ...

  9. 以通配符(%)开始的like字符串,走索引

    在对oracle的SQL优化过程中经常会遇到[like'%abc']破坏索引的问题,但是如果真有此类需求,该如何在不破坏索引的基础上进行查询呢. [sql] view plain copy sys@m ...

  10. Django学习(4)表单,让数据库更美好

    表单,在HTML中的标签为<form></form>,在网页中主要负责数据采集功能.我们在浏览网站时,常常会碰到注册账号.账号登录等,这就是表单的典型应用. 在Django学习 ...