成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

動態(tài)時鐘制作過程(CSS3+jQ)

開發(fā) 前端
使用jQuery可以方便的操作CSS從而得到動畫效果。聯(lián)想一下a:hover效果,你就會對如何實現(xiàn)這個例子產(chǎn)生一些想法。它遠(yuǎn)沒有jQuery和Mootools那么強(qiáng)大,但已經(jīng)足夠做一些很酷的東西了。

本文譯自Old School Clock with CSS3 and jQuery,主要講述了如何利用CSS3和jQuery制作一個漂亮的動態(tài)時鐘。

Hi,大家好,我叫Toby Pitman,Chris曾邀請我寫一篇關(guān)于最近我在論壇上發(fā)的一些實驗成果,于是當(dāng)我在WebKit blog和saw an article上看一些新的CSS3動畫時,有一個rotate屬性深深地吸引了我的眼球,于是就開始著手寫這篇文章了。我當(dāng)時就在思考什么東西可以在網(wǎng)頁上旋轉(zhuǎn)呢(貌似GIF動畫圖片可以),于是我有個點子--是的,時鐘不就是可以旋轉(zhuǎn)的嗎!開始!

CSS3 Transform:rotate

Transform:rotate是CSS3的一個新特性,它可以讓你...當(dāng)然,是實現(xiàn)一些旋轉(zhuǎn)的玩意兒啦。Transform也可以讓你在網(wǎng)頁上實現(xiàn)縮放、傾斜、移動對象。而且上面的這些都可以通過Transition屬性實現(xiàn)動畫效果。

聽起來很熟悉么?是的,當(dāng)然,和以前一樣,我們將依然結(jié)合jQuery來實現(xiàn)頁面上元素的動畫效果。因為使用jQuery可以方便的操作CSS從而得到動畫效果。聯(lián)想一下a:hover效果,你就會對如何實現(xiàn)這個例子產(chǎn)生一些想法。它遠(yuǎn)沒有jQuery和Mootools那么強(qiáng)大,但已經(jīng)足夠做一些很酷的東西了。

請注意:這個時鐘例子只能運(yùn)行在Firefox 3.1+、Safari 3+和Chrome瀏覽器上。

時鐘圖片

首先,我們需要準(zhǔn)備一些圖片來作為時鐘的圖形界面。這里我們用一張鐘盤圖片和三張指針圖片,其中運(yùn)動的指針我們是用photoshop切割出來的600×30的圖片,并將其豎直放置。然后利用rotate屬性讓其繞中心點旋轉(zhuǎn)。當(dāng)然,指針使用的是透明的PNG格式圖片。

HTML標(biāo)記

這個時鐘的HTML標(biāo)記非常簡單,只用了ul列表,每一個列表項(li)分別對應(yīng)著3根運(yùn)動指針,并且給其分配相應(yīng)的id,代碼如下:

  1. <ul id="clock"> 
  2.         <li id="sec"></li> 
  3.         <li id="hour"></li> 
  4.         <li id="min"></li> 
  5. </ul> 

CSS代碼

  1. #clock {  
  2.         positionrelative;  
  3.         width600px;  
  4.         height600px;  
  5.         margin20px auto 0 auto;  
  6.         backgroundurl(clockface.jpg);  
  7.         list-stylenone;  
  8. }  
  9.     
  10. #sec#min#hour {  
  11.         positionabsolute;  
  12.         width30px;  
  13.         height600px;  
  14.         top: 0px;  
  15.         left: 285px;  
  16. }  
  17.     
  18. #sec {  
  19.         backgroundurl(sechand.png);  
  20.         z-index3;  
  21. }  
  22.     
  23. #min {  
  24.         backgroundurl(minhand.png);  
  25.         z-index2;  
  26. }  
  27.     
  28. #hour {  
  29.         backgroundurl(hourhand.png);  
  30.         z-index1;  

CSS代碼也是非常簡單,由于3根運(yùn)動指針尺寸相同,并且是從同一個位置開始運(yùn)動,所以我們?yōu)榱撕喕a就將它們的代碼寫在一起了。為了能讓時鐘內(nèi)部的指 針實現(xiàn)絕對定位(absolutely position)我們將ul設(shè)成相對定位(relativeposition)。

好了,下面我們的jQuery就要上場了。

The jQuery JavaScript

這里Javascript主要完成以下工作:

獲取當(dāng)前的時間;計算并添加每個元素的CSS樣式(旋轉(zhuǎn)角度);周期性地設(shè)置CSS樣式。

獲取時間

你也許會將PHP中的時間和日期等同起來,剛開始的時候我的第一想法也是利用PHP,然而后來我發(fā)現(xiàn)javascript中也有構(gòu)造日期和時間的功能函數(shù)。只是需要注意的是javascript獲取的是本地時間并不是服務(wù)器時間。

首先我將用Date()函數(shù)獲取日期信息并將其賦給一個變量,我們可以通過GetSeconds(), GetMinutes()或GetHours()獲取3根指針的信息,如下代碼:

  1. var seconds = new Date().getSeconds(); 

上面的代碼會返回一個0到59的數(shù)字并將其分配給seconds變量。

獲取角度

接下來我將計算每根指針的角度。我們將每一周分成60等分,所以只要360/60就得到每一份是6,這意味著每一秒鐘或者每一分鐘指針都將前進(jìn)6度的角度。我們將計算結(jié)果保存到另一個變量中去,代碼如下:

  1. var sdegree = seconds * 6; 

對于時針的情況有點不同,因為每一個周期是12等分的,所以每小時時針前進(jìn)的角度是30度:360/12=30。既然這樣如果時針按這個增量運(yùn)動那就簡單 了,可是卻不是這么簡單的。它要根據(jù)分針的值運(yùn)動一小段距離,比如3:30的話時針會在3和4的中間,然而我們該如何來做呢,請看下面的代碼:

  1. var hdegree = hours * 30 + (mins / 2); 

基本上我們需要在hour后面加上分鐘數(shù)除以2的值,該值在0.5到29.5之間(rotate屬性支持浮點小數(shù)值)。

例如:

 

2.40 將得到:   2 * 30 = 60 degrees
  + 40 / 2 = 20 degrees
    --------- --- ----------
    hdegree = 80 degrees

 

設(shè)置樣式

下面是CSS3 rotate的CSS樣式表代碼:

  1. #sec {  
  2.    -webkit-transform: rotate(45deg);  
  3.    -moz-transform: rotate(45deg);  

這里我們改用jQuery來動態(tài)添加上面的樣式:

  1. $("#sec").css({"-moz-transform" : "rotate(45deg)", "-webkit-transform" : "rotate(45deg)"}); 

這里我們的一個問題是如何將'sdegree'變量替換樣式表中的45deg,可以這樣做:

  1. var srotate = "rotate(" + sdegree + "deg)"; 

jquery代碼就修改成如下:

  1. $("#sec").css({"-moz-transform" : srotate, "-webkit-transform" : srotate}); 

將所有代碼整合起來

所有的jQuery代碼如下:

 
 
  1. $(document).ready(function() {  
  2.     
  3.       setInterval( function() {  
  4.       var seconds = new Date().getSeconds();  
  5.       var sdegree = seconds * 6;  
  6.       var srotate = "rotate(" + sdegree + "deg)";  
  7.     
  8.       $("#sec").css({"-moz-transform" : srotate, "-webkit-transform" : srotate});  
  9.     
  10.       }, 1000 );  
  11.     
  12.       setInterval( function() {  
  13.       var hours = new Date().getHours();  
  14.       var mins = new Date().getMinutes();  
  15.       var hdegree = hours * 30 + (mins / 2);  
  16.       var hrotate = "rotate(" + hdegree + "deg)";  
  17.     
  18.       $("#hour").css({"-moz-transform" : hrotate, "-webkit-transform" : hrotate});  
  19.     
  20.       }, 1000 );  
  21.     
  22.       setInterval( function() {  
  23.       var mins = new Date().getMinutes();  
  24.       var mdegree = mins * 6;  
  25.       var mrotate = "rotate(" + mdegree + "deg)";  
  26.     
  27.       $("#min").css({"-moz-transform" : mrotate, "-webkit-transform" : mrotate});  
  28.     
  29.       }, 1000 );  
  30.     
  31. }); 

請注意這里我們用了Javascript中的setInterval函數(shù),這個函數(shù)每秒鐘都會執(zhí)行一次。一些獲取時間的變量也在這個函數(shù)中,所以每次調(diào)用都會自動更新時間值。

這樣,我們的時鐘就可以工作了。

在線實例

原文鏈接:http://www.cnblogs.com/cnhtml5/archive/2012/05/03/2481983.html

責(zé)任編輯:張偉 來源: HTML5中文網(wǎng)站的博客
相關(guān)推薦

2011-12-26 14:07:07

游戲

2012-05-24 10:15:48

PHP

2010-06-22 15:51:38

Autoconf rp

2009-12-04 15:05:22

ipcop軟路由

2012-12-24 11:13:17

CSSjQueryJavaScript

2011-02-24 14:23:18

2011-05-04 10:35:55

噴墨打印機(jī)

2010-09-01 15:17:04

DHCP工作過程

2010-09-01 15:37:04

DHCP工作過程

2014-06-03 17:29:48

PPP路由器

2009-02-24 09:48:00

IP電話語音數(shù)據(jù)

2011-04-19 09:27:46

CSS表單

2017-03-31 21:15:36

進(jìn)程線程池Binde

2011-05-11 16:13:43

CSS3

2012-05-24 11:03:55

HTML5

2012-05-14 16:29:53

HTML5

2014-04-29 10:39:27

CSS3JavaScript

2010-01-06 11:30:22

.NET Framew

2009-08-25 15:48:03

C#數(shù)組操作

2009-03-11 11:39:54

CSSJavascriptSEO
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 国产日韩精品视频 | 久久精品亚洲精品 | 在线看片网站 | 男人的天堂在线视频 | 99pao成人国产永久免费视频 | 国产精品免费大片 | 国产乱精品一区二区三区 | 91深夜福利视频 | 国产精品久久久久久久久久久久 | 国产91丝袜在线播放 | 成人在线视频免费看 | 成人国产精品色哟哟 | 免费网站国产 | 国产美女精品 | 欧美午夜视频 | 51ⅴ精品国产91久久久久久 | 国产一伦一伦一伦 | 日韩精品一区二区三区在线播放 | 精品中文字幕一区 | 久久久久久久国产精品影院 | 久久久久国产一区二区三区四区 | 久久一区二区免费视频 | 色综合色综合 | 精品国产视频 | 久久这里只有精品首页 | 国产h视频| 日日骚av | 色视频在线播放 | 国产伦精品一区二区三毛 | 亚洲综合免费 | 奇米久久 | 在线三级网址 | 成av在线 | 91久久北条麻妃一区二区三区 | 亚洲自拍一区在线观看 | 亚洲成人自拍网 | 亚洲欧美视频 | 成年人在线观看视频 | 久久久久国产一区二区三区 | 免费三级网 | 久久99精品久久久久久国产越南 |