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实现)

时间: 2024-10-06 23:14:52

jquery版时钟(css3实现)的相关文章

使用 jQuery Mobile 和 CSS3 实现响应式设计

使用 jQuery Mobile 和 CSS3 实现响应式设计 创建可以适应每个用户的屏幕分辨率的 Web 页面布局 jQuery Mobile 框架就其本身而言就是一个优秀的解决方案,可以快速创建一个可访问的由 HTML5 标记驱动的移动网站.当与 CSS3 配合使用时,工作真的会变得很有趣,因为它使创建一个根据屏幕分辨率来响应用户设备的 Web 页面布局成为可能.本文展示了如何使用 jQuery Mobile 框架和 CSS3 媒体查询在您的 Web 页面中实现响应式设计. jQuery M

jquery版小型婚礼(可动态添加祝福语)

原文:jquery版小型婚礼(可动态添加祝福语) 前两天在网上不小心看到“js许愿墙”这几个字,我的神经就全部被调动了.然后就开始我的百度生涯,一直寻觅许愿墙背景图片和便利贴图片,觅了好久……一直没找到满意的……无意间看到祝福语和一些卡通婚礼图片.最终我决定用jquery制作一个小型婚礼,并且实现添加祝福语的功能. 音乐响起来,开始我的婚礼进行曲~ 一.婚礼演示图 场景一: 场景二: 场景三: 场景四: 场景五: 场景六: 场景七: 添加祝福语: 二.html代码 <div class="

jQuery版感应鼠标显示隐藏的菜单

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>jQuery版感应鼠标显示隐藏的菜单丨天津

分享基于jQuery的时钟特效【qhttl.com】

基于jQuery的时钟特效,时钟特效,主要使用jquery+html5完成特效,具体解析详解Demo 下载地址:基于jQuery的时钟特效 预览Demo:http://www.qhttl.com/content/view/2014/07/17/jiaoben61/jiaoben61/index.html 先上图: 分享基于jQuery的时钟特效[qhttl.com],布布扣,bubuko.com

jQuery版推箱子游戏详解和源码

前言 偶然间看到很多用js写游戏的感觉很炫酷的样子,所以就想试试,就看了一些资料和某前端站点的视屏.于是乎就自己动手实践了一下,上推箱子截图 感觉很丑陋,但是功能是实现了.再说貌似大多都是这样的吧,这一关其实还是有点难度的,我做完之后想检测一下下一关正确么,居然还玩了以后才通关. 如果你看到这张图让你想起了你童年的回忆,说明你老了,这里可以试玩一下(很遗憾没有链接地址,最后又源码可以下载). css布局 主要考虑的是地图是怎么动态生成的,地图中有灰色的,还有墙,箱子,蓝色,红色背景,人物.先看c

Magic Grid ComboBox JQuery 版

在MagicCombo组件中嵌入Grid,以支持分页查找和跨页选取 ? 1. ?2. [代码][JavaScript]单选示例代码     <script type="text/javascript" src="/js/mac/pager.js"></script><script type="text/javascript" src="/js/mac/grid.js"></script

js简单 图片版时钟,带翻转效果

js简单 图片版时钟,带翻转效果 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>时钟</title> <style type="text/css"> ul,li{ list-style: none; margin: 0; padding: 0; } ul{ position: absolute; left: 2

jquery版网页倒计时动态效果

<!DOCTYPE html> <html> <head> <meta charset=utf-8 /> <title>jquery版网页倒计时动态效果</title> <!--[if IE]> <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script> <![endif]-->

jquery版相片墙(鼠标控制图片聚合和散开)

原文:jquery版相片墙(鼠标控制图片聚合和散开) 照片墙,简单点说就是鼠标点击小图片时,聚合变成一张大图片:点击大图片时,散开变成小图片.这个是我一年前无意间看到的动画效果(现在已经忘记是哪位大神制作的了,引用了他的图片),刚看到这个很炫的动画超级激动,哇!怎么可以这么牛!我制作出来的没那边炫,但是还是制作出来了,算是对我的一种激励!希望能有碰到问题就要解决它的精神,即使不是现在但会是不久的将来! 一.演示效果 散开状态: 聚合状态: 二.html代码 <div class="box&