zoukankan      html  css  js  c++  java
  • 时钟效果

    时钟效果,很久很久以前由flash提供网页的各种有趣的效果,近些年由html5推出canvas后,canvas与之博弈。现在讲的是用raphaeljs实现时钟效果。

    raphaeljs封装了svg和vml操作方法,SVG(Scalable Vector Graphics)可缩放矢量图形。VML(The Vector Markup Language)矢量可标记语言。


    先饱饱眼福,win7中的时钟效果show下,见下图:




    接下来亮相的时钟效果图(金属光泽的超质感),见下图:


    简单描述实现原理:
    第一步:画时钟。时钟圆盘、时钟时分秒指针、刻度、时间。画图方法circle、rect、text。

    // 画时钟表盘
    r.circle(150, 150, 140).attr({fill:"r(0.5,0.5)#ffffff-#efefef",stroke:"#cecece","stroke-width":1});
    // 画时针
    r.rect(144,150,8,100,4).attr({fill:"#ccc",stroke:"none"});
    // 画刻度
    r.rect(28,145,10,4).attr({fill:"#999",stroke:"none"});
    // 画时间
    r.text(150,220,(dh+":"+dm+":"+ds)).attr({font: "14px Arial", fill: "#000"});


    第二步:指针动起来动起来。

    // 初始化时分秒指针
    var d = new Date();
    var ds = d.getSeconds();
    var dm = d.getMinutes();
    var dh = d.getHours();
    var dD = d.getDate();
    var dM = d.getMonth()+1;
    var dY = d.getFullYear();
    h.rotate((dh+30+(dm/60)+(ds/(60*60)))*30,150,150);  
    m.rotate((dm+30+(ds/60))*6,150,150); 
    s.rotate((ds+30)*6,150,150);
    // 每秒更新指针
    setInterval(function(){
        d = new Date();
        ds = d.getSeconds();
        dm = d.getMinutes();
        dh = d.getHours();
        dD = d.getDate();
        dM = d.getMonth()+1;
        dY = d.getFullYear(); 
    
        h.rotate(6/(60*60),150,150);
        m.rotate(6/60,150,150);
        s.rotate(6,150,150);
    },1000);

    第三步:显示时间年月份。

    // 初始化时间
    var txt = r.text(150,220,(dh+":"+dm+":"+ds)).attr({font: "14px Arial", fill: "#000"});
    var txt1 = r.text(150,200,dY+"年"+dM+"月"+dD+"日  星期"+txtT.charAt(dT)).attr({font: "14px Arial",fill: "#000"});
    // 每秒更新时间
    setInterval(function(){
        txt.attr({text:dh+":"+dm+":"+ds});
        txt1.attr({text:dY+"年"+dM+"月"+dD+"日  星期"+txtT.charAt(dT)});
    },1000);


    搞定,超爽,感兴趣的可以发挥想象力做出更多时钟效果。




    DEMO:

  • 相关阅读:
    [转载]从零开始学习OpenGL ES之一 – 基本概念
    ios中陀螺仪CoreMotion的使用
    如何在IOS中使用3D UI – CALayer的透视投影
    cocos3d加载3Dmax模型到ios中
    cocos2d 坐标系统参考
    PAT 1029 Median
    PAT 1028 List Sorting
    Linux中的进程调度(二)
    LaTeX学习(一)
    搬家
  • 原文地址:https://www.cnblogs.com/kuikui/p/3634494.html
Copyright © 2011-2022 走看看