当前位置:首页 > 开发 > Web前端 > Jquery > 正文

jquery版时钟(css3实现)

发表于: 2015-11-13   作者:互联网   来源:转载   浏览次数:
摘要: 原文: jquery版时钟(css3实现)   做时钟的主要原因是因为喜欢,觉得它好看(本人对特效有点爱不释手……)。做的时候感觉工程量会有点大,做着做着发现实现起来其实并不难,只要理清思绪,其实还蛮简单的(我制作东西喜欢整体方向制定好,然后边做边找感觉,最后可能会有不一样的惊喜)。   我这里采用了时钟的背景图片,第一我觉得图片好看,第二我觉得应该先实现主要的功能再考虑画图(总归来说就
原文: jquery版时钟(css3实现)

  做时钟的主要原因是因为喜欢,觉得它好看(本人对特效有点爱不释手……)。做的时候感觉工程量会有点大,做着做着发现实现起来其实并不难,只要理清思绪,其实还蛮简单的(我制作东西喜欢整体方向制定好,然后边做边找感觉,最后可能会有不一样的惊喜)。

  我这里采用了时钟的背景图片,第一我觉得图片好看,第二我觉得应该先实现主要的功能再考虑画图(总归来说就是有点懒,哈哈~)。好了,废话不多说啦,进入正题。

  一、图片演示

  jquery版时钟(css3实现)

  二、html代码

<div class="box">

    <div class="clock"> <!-- 时钟背景图 -->

        <div class="second-hand"></div> <!-- 秒针 -->

        <div class="minute-hand"></div> <!-- 分针 -->

        <div class="hour-hand"></div> <!-- 时针 -->

    </div>

</div>

   三、css代码

        .box {margin: 10px auto; width: 894px; height: 863px;}

        .clock {position: relative; width: 894px; height: 863px; background: url("images/bg.png") no-repeat;}

        .second-hand,.minute-hand,.hour-hand {position: absolute; left: 50%; margin-left: -6px; top: -13px; width: 20px; height: 894px; background: url("images/clock_needle.png") no-repeat;}

        /* 三根针的长度和时钟的宽度保持一致(最长的),这样可以实现以中心旋转 */

        .second-hand {background-position: -1px 59px; z-index: 1000;}

        .minute-hand {background-position: -25px 56px; z-index: 100;}

        .hour-hand {background-position: -54px 56px; z-index: 10;}

  分析:

  这里需要注意的是,要让秒针、分针和时针的长度和时钟的宽度(长度,谁长就和谁一样)一致(时钟最好是正方形的),因为图片旋转的时候,是以图片中心为圆心旋转。

  四、js代码

        $(function(){

            var $second = $(".second-hand"), /* 秒针 */

                    $minute = $(".minute-hand"), /* 分针 */

                    $hour = $(".hour-hand"), /* 时针 */

                    nowTime = function(){ /* 执行函数 */

                        /* 得到现在的小时,分钟和秒 */

                        function getTime(){

                            var now = new Date();

                            return {

                                hours: now.getHours() + now.getMinutes() / 60, /* 小时数,包括分钟数 */

                                minutes: now.getMinutes() + now.getSeconds() / 60, /* 分针数,包括秒数 */

                                seconds: now.getSeconds() /* 秒数 */

                            }

                        }

                        var _date = getTime(); /* 接收的时间对象 */

                        /* 秒针,一圈360度总共是60秒(60格),一秒(一格)就是6度,乘以6的主要原因就是秒数乘以一格的度数等于总度数 */

                        var _secondRotate = Math.floor(_date.seconds) * 6;

                        /* 分针,一圈360度总共是60分钟,和秒数解释类似 */

                        var _minuteRotate = _date.minutes * 6;

                        /* 时针,一圈360度是12个小时,一个小时就是30度(其实也是5格),小时数乘以一小时的度数就是总度数。但是要考虑大于12的小时数,这里采取整除12的方发即可实现 */

                        var _hourRotate =  (_date.hours % 12) * 30;

                        $second.css({"transform":"rotate("+_secondRotate+"deg)"}); /* 设置秒针旋转度 */

                        $minute.css({"transform":"rotate("+_minuteRotate+"deg)"}); /* 设置分针旋转度 */

                        $hour.css({"transform":"rotate("+_hourRotate+"deg)"}); /* 设置时针旋转度 */

                    }



            setInterval(nowTime,1000); /* 循环调用,一秒后调用一次 */



        })

  分析:

  注释讲解的比较清楚,我这里主要强调一下如何获取秒针、分针和时针的旋转度数。

  秒针,旋转一圈总共是60秒,一圈也就是360°。这样想想,一秒就是6°,一圈总共是60格,一秒是一格也是6°,即秒针的旋转度数就是秒数乘以6。

  分针,分针的解释和秒针类似。它旋转一圈是60分钟,所以一分钟旋转6度,一分钟是一格也是6°,即分针的旋转度数是分钟数乘以6。

  时针,一圈是12个小时,一个小时应该是360/12=30°,所以时针的旋转角度为小时数乘以30°。也可以这样解释,一个小时占了5格,一格是6°,即小时数乘以5再乘以6则是时针旋转度数。

  查看演示 下载代码

   如果有哪里讲得不好或者不对的对方欢迎指正,谢谢~

jquery版时钟(css3实现)

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
小练一下canvas版简单时钟与css3版漂亮时钟 无聊时候用canvas练了一下时钟,但感觉画面不是很舒服,
无聊时候用canvas练了一下时钟,但感觉画面不是很舒服,可能canvas用的不是很精炼。 随后又用css3重
这要从上周开始说起,当我看到 漂亮的 dribbble 截图,就立刻感觉到一种要将其转变为一个可工作的时
制作时钟之前需要了解几点知识: 一、圆上点坐标的计算 二、时钟上时针、分针、秒针的换算 我们观察
今天我们要来分享一款很酷的jQuery相册插件,首先相册中的图片会以一定的角度倾斜放置在页面上,点
今天我们再来看一款HTML5 3D相册浏览应用,图片可以手动播放,也可以自动播放,效果非常震撼,赶紧
来自:http://www.open-open.com/lib/view/open1338083235214.html jQuery Mobile 框架是一个 JavaS
今天为大家带来的是jquery和css3实现的不错的导航菜单。点击列表图表后,内容页面向内移动显示菜单
使用 jQuery Mobile 和 CSS3 实现响应式设计 创建可以适应每个用户的屏幕分辨率的 Web 页面布局 jQu
看了网上牛人利用 JS和CSS3制作的时钟效果,很喜欢,现分享在这: 先上图: 源码如下(直接copy即可
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号