日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

时钟效果

發布時間:2025/7/14 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 时钟效果 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

時鐘效果,很久很久以前由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:

<!doctype html> <html lang="cn"> <head> <meta charset="UTF-8"> <title>時鐘效果</title> <style> *{margin: 0;padding: 0;} .main{width:960px; margin: 0px auto;} .mainTit{color: #f00; font-size: 50px;font-weight:bold;text-align: center; text-shadow: 3px 1px 6px #f60; padding: 30px 0px;} .main .block{width:300px; height: 300px; margin: 0px auto;} .main .remark{color: #333;font-size: 12px; text-align: center; margin-top: 100px;} </style> </head> <body> <div class="main"> <div class="mainTit">時鐘</div> <div class="block" id="test"></div> </div> <script src="http://files.cnblogs.com/kuikui/jquery-1.10.2.min.js"></script> <script src="http://files.cnblogs.com/kuikui/raphael.js"></script> <script> $(function(){ var r = Raphael("test",300,300); r.circle(150, 150, 140).attr({fill:"r(0.5,0.5)#ffffff-#efefef",stroke:"#cecece","stroke-width":1}); r.circle(150, 150, 132).attr({fill:"r(0.5,0.5)#ffffff-#efefef",stroke:"#cecece"}).glow({width:8,color:"#aaa"}); r.circle(150, 150, 100).attr({fill:"#fff",stroke:"none","fill-opacity": 0.3}).glow({width:8,color:"#aaa",offsetx:0,offsety:0}); r.rect(28,145,10,4).attr({fill:"#999",stroke:"none"}); r.rect(145,28,4,10).attr({fill:"#999",stroke:"none"}); r.rect(148,265,4,10).attr({fill:"#999",stroke:"none"}); r.rect(265,148,10,4).attr({fill:"#999",stroke:"none"}); 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(); var dT = d.getDay(); var txtT = "日一二三四五六"; 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" }); var h = r.rect(144,150,8,100,4).attr({fill:"#ccc",stroke:"none"}); var m = r.rect(148,150,4,115,2).attr({fill:"#ccc",stroke:"none"}); var s = r.rect(150,150,1,130).attr({fill:"#f60",stroke:"none"}); r.circle(150, 150, 10).attr({fill:"#f60",stroke:"none"}).glow({width:6,color:"#f60"}); r.circle(150, 150, 6).attr({fill:"r(0.5,0.5)#ffffff-#efefef",stroke:"none"}); 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(); txt.attr({text:dh+":"+dm+":"+ds}); txt1.attr({text:dY+"年"+dM+"月"+dD+"日 星期"+txtT.charAt(dT)}); h.rotate(6/(60*60),150,150); m.rotate(6/60,150,150); s.rotate(6,150,150); },1000); }); </script> </body> </html>

運行代碼

總結

以上是生活随笔為你收集整理的时钟效果的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。