基于JS和JQuery实现的两种时钟效果

Posted jiguiyan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于JS和JQuery实现的两种时钟效果相关的知识,希望对你有一定的参考价值。

时钟案例-显示表盘

需要使用到的素材:

技术图片

 

 技术图片

 

 显示表盘的最终效果:

技术图片

 

 使用到的css:

<style>
            *
                
                padding: 0px;
                margin: 0px;
            
            #clock
                width: 800px;
                height: 800px;
                border: 1px solid red;
                margin: auto;
                background: url(img/timg.png) 0px 0px no-repeat;
                background-size: 100% 100%;
            
        </style>

使用到的html

<body>
        <div id="clock">
            
            
        </div>
    </body>

其中:

表示铺满整个div

 background-size: 100% 100%;

 

时钟案例-秒针的布局

需要按f12细微的调节其位置,记得复制调整好的位置哦!

最终实现的效果:

技术图片

 

 实现该效果的css以及HTML:

<style>
            *
                
                padding: 0px;
                margin: 0px;
            
            #clock
                width: 800px;
                height: 800px;
                border: 1px solid red;
                margin: auto;
                background: url(img/timg.png) 0px 0px no-repeat;
                background-size: 100% 100%;
                position: relative;
            
            .second
                
                width: 22px;
               height: 373px;
               /*border: 1px solid red;*/
               background: url(img/pointer.png) -9px 0px no-repeat;
               background-size: 606% 100%;
               position: absolute;
               left: 393px;
              top: 135px;
              opacity: 0.5;
                    
            
        </style>
    </head>
    <body>
        <div id="clock">
            <div class="second">
                
                
            </div>
            
            
        </div>
    </body>

时钟案例-秒针调整旋转原点-编写定时器秒针动起来

 

秒针实现的转动效果:

技术图片

 

 实现的该效果的代码:

技术图片
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style>
            *
                
                padding: 0px;
                margin: 0px;
            
            #clock
                width: 800px;
                height: 800px;
                border: 1px solid red;
                margin: auto;
                background: url(img/timg.png) 0px 0px no-repeat;
                background-size: 100% 100%;
                position: relative;
            
            .second
                
                width: 22px;
               height: 373px;
               /*border: 1px solid red;*/
               background: url(img/pointer.png) -9px 0px no-repeat;
               background-size: 606% 100%;
               position: absolute;
               left: 393px;
              top: 135px;
              opacity: 0.5;
              transform: rotate(46deg);
              transform-origin: 11px 273px;
                    
            
        </style>
        <script>
            var secDegree=0;
            //每秒钟调用一次
            function clockRotate()
                secDegree+=6;
                var divSecond=document.getElementsByClassName("second");
                divSecond[0].style.transform="rotate("+secDegree+"deg)";
                
            
            //启动定时器,定时调用旋转函数
            setInterval("clockRotate()",1000);
        </script>
    </head>
    <body>
        <div id="clock">
            <div class="second">
                
                
            </div>
            
            
        </div>
    </body>
</html>
clock.html

其中:

旋转的角度以及旋转的中心点

transform: rotate(46deg);
              transform-origin: 11px 273px;

 

6度的是由360/60得来的:

<script>
            var secDegree=0;
            //每秒钟调用一次
            function clockRotate()
                secDegree+=6;
                var divSecond=document.getElementsByClassName("second");
                divSecond[0].style.transform="rotate("+secDegree+"deg)";
                
            
            //启动定时器,定时调用旋转函数
            setInterval("clockRotate()",1000);
        </script>

 

 时钟案例-秒针设置为当前时间-添加秒针头像

秒针设置为当前时间

效果:

技术图片

 

 秒数设置为当前时间的代码:

var secDegree=0;
            
            function bodyload()
                var now=new Date();
                var sec=now.getSeconds();
                secDegree=sec*6;//当前的秒数乘以6
                
                
                
                
            
<body onload="bodyload()">
        <div id="clock">
            <div class="second">
                
                
            </div>
            
            
        </div>
    </body>

 

添加秒针头像

可以添加自己喜欢的头像,我这里就添加我喜欢的哆啦A梦了哦!

技术图片

 

 

实现的效果:

技术图片

 

 实现该效果的HTML:

<body onload="bodyload()">
        <div id="clock">
            <div class="second">
                <div class="secHead">
                    
                    
                </div>
                
                
            </div>
            
            
        </div>
    </body>

实现该效果的css:

<style>
            *
                
                padding: 0px;
                margin: 0px;
            
            #clock
                width: 800px;
                height: 800px;
                border: 1px solid red;
                margin: auto;
                background: url(img/timg.png) 0px 0px no-repeat;
                background-size: 100% 100%;
                position: relative;
            
            .second
                
                width: 22px;
               height: 373px;
               /*border: 1px solid red;*/
               background: url(img/pointer.png) -9px 0px no-repeat;
               background-size: 606% 100%;
               position: absolute;
               left: 393px;
              top: 135px;
              opacity: 0.5;
              transform: rotate(46deg);
              transform-origin: 11px 273px;
                    
            
            .secHead
                
                width: 40px;
                height: 40px;
                background: url(img/one.jpg) 0px 0px no-repeat;
                background-size: 100% 100%;
                position: absolute;
                left: -10px;
                top: 64px;
                border-radius: 50%;
                
            
        </style>

 

以上是关于基于JS和JQuery实现的两种时钟效果的主要内容,如果未能解决你的问题,请参考以下文章

基于JS和JQuery实现的两种时钟效果

JS实现放大镜效果

将以下jq代码转换为原生js

用js和jq分别实现二级联动效果

div随页面滚动遇顶固定的两种方法(js&jQuery)

JQ用法