• 来个给力的东西,web时钟,支持iphone和android


    效果还是比较玄的,可以用来做iphone的主题。

    算了,直接放上来还要调整模板,懒得弄了。 贴一些关键的代码吧。

    代码


    var cDate = new Date();

    var nHours = cDate.getHours();

    var nMins = cDate.getMinutes();

    var nSecs = cDate.getSeconds();
    var AMPM = 'AM';


    $(document).ready(
    function(){

            
        setAMPM();
        
    //set seconds

        
    var op = 0;

        
    var fs = 0;

        
    var secs = nSecs;

        
    //for secs

        
    for(var i=0;i<40;i++){

            op 
    = op +0.025;

            fs 
    = fs + 0.45;

            
    var ind = secs+21;

            updateHands(op, ind, 
    606,140'div.secs',fs);             

            secs 
    = secs+1;

        }

        $(
    'div.secs p:last').addClass('c').css({opacity: 1, fontSize: '10px'});

        

        
    //for mins

        
    var mins = nMins;

        op 
    = 0;

        fs 
    = 0;

        
    for(var i=0;i<40;i++){ 

            op 
    = op + 0.025;

            fs 
    = fs + 0.45;

            
    var ind = mins+21;

            updateHands(op, ind, 
    606,100'div.mins',fs);             

            mins 
    = mins+1;

        }

        $(
    'div.mins p:last').addClass('c').css({opacity: 1, fontSize: '26px'});

        

        
    //for hours

        
    var hours = nHours;

        op 
    = 0;

        fs 
    = 11;

        
    for(var i=0;i<8;i++){ 

            op 
    = op + 0.15;

            fs 
    = fs + 1.4;

            
    var ind = hours+5;

            updateHands(op, ind, 
    1230,50'div.hours',fs);                

            hours 
    = hours+1;

        }

        $(
    'div.hours p:last').addClass('c').css({opacity: 1, fontSize: '36px'});



        setInterval(updateTimer,
    1000);

    });

    function updateHands(op, ind, max, aDiff, r, elem, fSize){    

        ind 
    = ind%max;

        
    var angle = (ind*aDiff)-90;

        
    var cosA = Math.cos(angle*(Math.PI/180));

        
    var sinA = Math.sin(angle*(Math.PI/180));

        
    var x = Math.round(162+(r*cosA)-50);

        
    var y = Math.round(160+(r*sinA)-25);

        
    if(max != 12){
            
    if (ind < 10) ind = '0' + ind;
        }

        
    if (max == 12 && ind == 0) ind = '12';

        
    var p = '<p style="font-size: ' + fSize + 'px;opacity: ' + op + ';left: ' + x + 'px;top: ' + y + 'px;">' + ind + '</p>';

        $(elem).append(p);    

    }

    function updateTimer(){

        
    //ind = secs;

        
    //ind = secs+37;

        nSecs 
    = nSecs + 1;

        updateHands(
    0, nSecs, 606,140'div.secs'22);

        

        updateStyle(
    'div.secs'0.02540'22px'7000, .45);

        
    //update mins

        nSecs 
    = nSecs%60;

        
    if(nSecs == 0){

            nMins 
    = nMins + 1;

            updateHands(
    0, nMins, 606,100'div.mins',25);

            updateStyle(
    'div.mins'0.02540'25px'10000, .45);

            

            nMins 
    = nMins%60;

            
    if(nSecs == 0 && nMins == 0){    

                nHours 
    = nHours + 1;

                updateHands(
    0, nHours, 1230,50'div.hours',28);

                updateStyle(
    'div.hours'0.159'30px'1000101.2);

                
    //nHours = nHours + 1;

                bHours 
    = nHours%12;
                setAMPM();

            }

        }

        

    }



    function updateStyle(elem, oI, limit, finalSize,t, s, fI){

        $(elem 
    + ' p').eq(0).remove();

        $(elem 
    + ' p.c').removeClass('c');



        
    var o = 0;

        
    var fs = s;

        
    for(var i=0;i<limit;i++){

            o 
    = o + oI;

            fs 
    = fs + fI;

            $(elem 
    + ' p').eq(i).css({opacity: o, fontSize: fs + 'px' });

        }

        

        $(elem 
    + ' p:last').addClass('c').css({fontSize: '0px',opacity: 0}).animate({

            fontSize: finalSize,

            opacity: 
    1        

        },t,
    'easeOutBounce');    

    }
    function setAMPM(){
        
    var nDate = new Date();
        
    if(nDate.getHours()>11)
            AMPM 
    = 'PM';
        
    else
            AMPM 
    = 'AM';
        $(
    'div.ampm').css({opacity: 0, fontSize: '0px'}).animate({opacity: 1, fontSize: '20px'}, 700,'easeOutBounce').html(AMPM);
    }


     具体效果看源码包吧。

    点击下载源码包

  • 相关阅读:
    django框架个人博客实战
    django框架简介
    Nginx 反向代理设置
    Nginx 动静分离设置
    nginx 安装
    nginx-简介及概念
    自己的Qt GUI 项目+vs2013+opencv+caffe环境配置
    机器学习实战之K-Means算法
    机器学习实战之树回归
    机器学习实战之回归
  • 原文地址:https://www.cnblogs.com/Blood/p/webclock.html
Copyright © 2020-2023  润新知