昨天,有一天招,宽带到底没装上。相当恼火,不过包了一天租新房,有很多想法下来,其中,率先实现了--动态时钟(它已上载的资源,一些粗略的全貌。汗...)

这里记录。这个看似简单的功能,以达到良好的,我在的实施过程中遇到了哪些问题。代码,仅仅是依据自己现阶段的学习来做的,可能会有些麻烦。有些粗糙,可是终归是实现了这个效果,心里还是小开心了下。

先来张终于实现的效果图(静态图片);

首先准备素材,我从网上搜到了一个时钟的素材,谁让我的ps还菜的菜呢。然后我有了表盘、时针、分针和秒针。这样组成一个闹钟的基本元素就全了。

然后就是对素材的放置。这里是解决的第一个问题,尽管是自找的问题,(我将它放在了页面中间)

**********css实现居中*******

来看一下实现的代码;

html部分

 <div id="back">
<img src="back.jpg" width="600px" height="600px">
</div>

然后是对样式的设置:

 #back{
top:50%;
left:50%;
margin-left:-300px;
margin-top:-300px;
position:absolute;
z-index:1;
}

这里是设置固定位置,这时候设定的left和top是相比較左上角的点来进行描写叙述的,之后将margin-left和margin-top分别设置成该div(这里表现为back的div)的长、宽的一半就可以

之后进行的是分针秒针和时针的放置。这里须要考虑两个问题:1、三个针都设为固定位置,而且转动的点要确定,分层层级要明显。2、实现绕固定点的转动(这个是比較纠结的地方)

*******************绕固定点转动

提及转动,在前面我们曾实现过仅仅要css要div动起来,这里实现的基本原理也是一样。这样我们就能够用transform:rotate(---deg)。于是我就用这个进行转动,结果我发现我无法让图片在固定点上转动,它仅仅能以div自身的中心进行转动。那这该怎样办,困惑好久之后,终于我想了一个办法,既然中心是固定的,那我就把想要绕之转动的那个固定点放在中心上。不就能够生成绕固定点转动的假象了么,至于还有一半的部分。我将底色该为与表盘颜色同样,而且设置透明度opacity为最大值。实现全然透明,于是就有了以下的编码:

html部分:

<div id="miao" style="height:320px;background:#fff;width:20px;-moz-opacity:1;">
<div style="height:30px;width:20px;opacity:1;"></div>
<div>
<img src="miao320.jpg" height="180px">
</div>
</div>
<div id="fen" style="height:320px;background:#fff;width:20px;-moz-opacity:1;">
<div style="height:20px;width:20px;"></div>
<img src="fen32035.jpg" height="180px">
</div>
<div id="shi" style="height:320px;background:#fff;width:20px;-moz-opacity:1;">
<div style="height:30px;width:20px;"></div>
<img src="shi32035.jpg" height="175px">
</div>

这里由于图片改的有些粗糙,所以设定的距离不同,看css的样式设置:

  #miao{
top:50%;
left:50%;
margin-top:-140px;
margin-left:-10px;
position:absolute;
z-index:2;
}
#fen{
top:50%;
left:50%;
margin-top:-140px;
margin-left:-5px;
position:absolute;
z-index:3;
}
#shi{
top:50%;
left:50%;
margin-top:-140px;
margin-left:-5px;
position:absolute;
z-index:4;

最后就是利用js动态改变旋转的角度,来看以下的实现方法:

<script type="text/javascript">
window.onload=function(){
var miao=document.getElementById("miao");
var fen=document.getElementById("fen");
var shi=document.getElementById("shi");
var hour;//当前时
var minute;//当前分
var second;//当前秒
var circleHour;//时针转动的角度
var circleMinute;//分针转动的角度
var circleSecond;//秒针转动的角度 var cycle=setInterval(function(){
var nowDate=new Date();//每次读取当前时间
hour=nowDate.getHours();
circleHour=(parseInt(hour)%12)*30;
shi.style.transform="rotate("+circleHour+"deg)";//读取到的时间为24小时制,转换为12小时
minute=nowDate.getMinutes();
fen.style.transform="rotate("+parseInt(minute)*6+"deg)";
second=nowDate.getSeconds();
miao.style.transform="rotate("+parseInt(second)*6+"deg)";
},1000);//每1000毫秒调用一次方法
}
</script>

这样来看,效果就出来了。尽管有些粗糙,可是还是让我开心不已,至于角度的获取都是些基础的思路了,就不多赘述了。

这样感觉起来,确实东西没用多少,为什么刚開始在做的时候柑感觉那么难的..........

版权声明:本文博客原创文章,博客,未经同意,不得转载。

js+css3动态时钟-------Day66的更多相关文章

  1. 史上最简单的js+css3实现时钟效果

    今天我看到百度搜索的时间那个效果不错,于是就产生了模仿一下的效果,不过为了节省时间,就随便布了下局,废话不多说,先看看效果吧,顺便把百度的效果也拿过来. 对比样子差了好多啊,但是基本功能都是实现了的, ...

  2. 用js写动态时钟 2017-03-23

    45每隔1秒变一次: 代码如下: <body onLoad="show()" >   ------------表示当页面载入时执行该事件,可以没有 <div id ...

  3. 原生JS实现动态时钟(优化)

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  4. 环形进度条的实现方法总结和动态时钟绘制(CSS3、SVG、Canvas)

    缘由: 在某一个游戏公司的笔试中,最后一道大题是,“用CSS3实现根据动态显示时间和环形进度[效果如下图所示],且每个圆环的颜色不一样,不需要考虑IE6~8的兼容性”.当时第一想法是用SVG,因为SV ...

  5. js 动态时钟

    js 动态时钟 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www ...

  6. CSS3_过渡_2D 变换_瓶体旋转_动态时钟

    1. 过渡 transition 允许 CSS 的属性值在一定时间内平滑的过渡, 在鼠标点击,鼠标滑过或对属性改变中触发,并圆滑的改变 CSS 的属性值 简写属性: #box { width: 300 ...

  7. 基于CSS3动态背景登录框代码

    基于CSS3动态背景登录框代码.这是一款基于jQuery+CSS3实现的带有动画效果的动态背景登陆框特效.效果图如下: 在线预览   源码下载 实现的代码. html代码: <div class ...

  8. JS框架_(JQbar.js)柱状图动态百分比进度条特效

    百度云盘 传送门 密码:q6rt 柱状图动态百分比进度条效果 <html> <head> <title>jqbar.js柱状图动态百分比进度条特效</titl ...

  9. 从零开始手把手教你使用原生JS+CSS3实现幸运水果机游戏

    项目体验地址 免费视频教程 游戏介绍 幸运水果机是一款街机游戏,游戏界面由24个方格拼接成一个正方形,每个方格中都有一个不同的水果图形,方格下都有一个小灯.玩家使用游戏币选择希望押注的目标,按下开始后 ...

随机推荐

  1. struts详细解释拦截器

    1.拦截器:Struts2拦截器将一个Action要么Action的方法.之前或截取后场,和Struts2拦截器是可插拔,拦截器AOP一种实现. WebWork:拦截器是动态拦截Action调用的对象 ...

  2. 数据库管理——Powershell——使用Powershell脚本找出消耗最多磁盘空间的文件

    原文:数据库管理--Powershell--使用Powershell脚本找出消耗最多磁盘空间的文件 原文译自: http://www.mssqltips.com/sqlservertip/2774/p ...

  3. SQL Server 连接问题-命名管道

    原文:SQL Server 连接问题-命名管道 出自:http://blogs.msdn.com/b/apgcdsd/archive/2011/01/12/sql-server-1.aspx 一.前言 ...

  4. Codeforces Round #107 (Div. 2)---A. Soft Drinking

    Soft Drinking time limit per test 2 seconds memory limit per test 256 megabytes input standard input ...

  5. [2011山东ACM省赛] Identifiers(模拟)

    Identifiers Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描写叙述  Identifier is an important ...

  6. Atitit。团队建设--管理最佳实践--如何留住关键人才,防止人才外流 ??

    Atitit.团队建设--管理最佳实践--怎样留住核心人才,防止人才流失 ?? 1. 1.人才流失后果 1 1. 1.员工的离职带走商业技术秘密和客户等资源 1 2. 2.影响在职员工的情绪.极大挫伤 ...

  7. C语言API编写窗口界面和button

            近期有个同学的程序须要用对话框的方式实现,但前面都是通过黑框形式完毕的,老师突然让添加一个界面,本来准备採用MFC完毕的,但后来一想,该程序核心东西是体如今它的算法上,控制台的程序并不 ...

  8. STL源代码分析——STL算法merge合并算法

    前言 因为在前文的<STL算法剖析>中.源代码剖析许多.不方便学习.也不方便以后复习,这里把这些算法进行归类.对他们单独的源代码剖析进行解说.本文介绍的STL算法中的merge合并算法. ...

  9. Linux init详解(转)

    Linux init详解 一.什么是INIT: init是Linux系统操作中不可缺少的程序之一. 所谓的init进程,它是一个由内核启动的用户级进程. 内核自行启动(已经被载入内存,开始运行,并已初 ...

  10. OpenGL于MFC使用汇总(三)——离屏渲染

    有时直接创建OpenGL形式不适合,或者干脆不同意然后创建一个表单,正如我现在这个项目,创建窗体不显示,它仅限于主框架.而我只是ActiveX里做一些相关工作,那仅仅能用到OpenGL的离屏渲染技术了 ...