最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺談時(shí)鐘的生成(js手寫簡(jiǎn)潔代碼)

 更新時(shí)間:2016年08月20日 09:09:32   投稿:jingxian  
下面小編就為大家?guī)?lái)一篇淺談時(shí)鐘的生成(js手寫簡(jiǎn)潔代碼)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

在生成時(shí)鐘的過(guò)程中自己想到布置表盤的寫法由這么幾種:

當(dāng)然利用那種模式都可以實(shí)現(xiàn),所以我們要用一個(gè)最好理解,代碼有相對(duì)簡(jiǎn)便的方法實(shí)現(xiàn)

1、利用三角函數(shù)

用js在三角函數(shù)布置表盤的過(guò)程中有遇見(jiàn)到這種情況:是在表盤的刻度處,利用三角函數(shù)計(jì)算具體的值時(shí)不能得到整數(shù),需要向上或者向下取整,這樣無(wú)形中就會(huì)存在些許偏差,而且這樣的偏差難利用樣式來(lái)調(diào)整到位,即使最終效果都可以實(shí)現(xiàn),但是細(xì)微處的縫隙和角度的偏差都會(huì)影響整體的視覺(jué)體驗(yàn),作為一名程序開(kāi)發(fā)人員,這樣的視覺(jué)體驗(yàn)很難讓別人認(rèn)可,放棄。

2、利用遮罩層

js利用遮罩層,主要還是在表盤的刻度處,表盤的刻度有長(zhǎng)和短,每5個(gè)刻度都有一根較長(zhǎng)的刻度,這樣我們利用遮罩層遮住的刻度的長(zhǎng)短都是一致的,很難繼續(xù)調(diào)整其余的刻度所以也放棄。

3、利用定位以及(父子級(jí)關(guān)系)(推薦)

利用定位以及父子級(jí)關(guān)系的方法我覺(jué)得最好理解和上手,在這里為大家分享一下。下面是實(shí)現(xiàn)代碼:

<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8">
  <title></title>
  <style media="screen">
   * {
    margin: 0;
    padding: 0;
   }
   #clock {
    width: 600px;
    height: 600px;
    border: 4px solid lightgray;
    margin: auto;
    position: relative;
    border-radius: 50%;
   }
   #scale {
    width: 20px;
    height: 100%;
    position: absolute;
    left: 50%;
    margin-left: -10px;
    /*background: green;*/
   }
   #point {
    width: 4px;
    height: 10px;
    background: lightgray;
    margin: auto;
   }
   #number {
    width: 20px;
    height: 20px;
    margin-top: 5px;
    /*background: red;*/
    font-size: 20px;
    text-align: center;
    line-height: 20px;
   }
   #hour {
    width: 12px;
    height: 180px;
    background: red;
    border-radius: 6px;
    transform-origin: 50% 150px;
    position: absolute;
    top: 150px;
    left: 50%;
    margin-left: -6px;
   }
   #minute {
    width: 8px;
    height: 250px;
    background: orange;
    position: absolute;
    border-radius: 4px;
    transform-origin: 50% 200px;
    top: 100px;
    left: 50%;
    margin-left: -4px;
   }
   #second {
    width: 4px;
    height: 360px;
    background: red;
    border-radius: 2px;
    position: absolute;
    top: 0;
    left: 50%;
    margin-left: -2px;
    transform-origin: 50% 300px;
    z-index: 100;
   }
  </style>
 </head>
 <body>
  <div id="clock">
   <div id="hour">

   </div>
   <div id="minute">

   </div>
   <div id="second">

   </div>
  </div>
 </body>
 <script type="text/javascript">
  var clock = document.getElementById('clock');
  var hour = document.getElementById('hour');
  var minute = document.getElementById('minute');
  var second = document.getElementById('second');

  function surface() {
   var currentDate = new Date();
   var hours = currentDate.getHours();
   var minutes = currentDate.getMinutes();
   var seconds = currentDate.getSeconds();

   seconds = hours * 3600 + minutes * 60 + seconds;

   hour.style.transform = 'rotate('+seconds / 120+'deg)';
   minute.style.transform = 'rotate('+seconds * 0.1+'deg)';
   second.style.transform = 'rotate('+seconds * 6+'deg)';

  }
  setInterval('surface()', 1000);

  for (var i = 1; i < 61; i++) {
   var scale = document.createElement('div');
   scale.id = 'scale';
   scale.style.transform = 'rotate('+i * 6+'deg)';
   clock.appendChild(scale);

   var point = document.createElement('div');
   point.id = 'point';
   scale.appendChild(point);

   var number = document.createElement('div');
   number.id = 'number';
   number.style.transform = 'rotate(-'+i * 6+'deg)'
   if (i % 5 == 0) {
    number.innerHTML = i / 5;
    point.style.height = '15px';
   }
   scale.appendChild(number);
  }
 </script>
</html>

校正中需要注意:

1、以下是分步實(shí)現(xiàn)的效果圖,最后做到細(xì)節(jié)處緊密貼合,不用其他的方法在對(duì)她進(jìn)行微調(diào),當(dāng)樣式布局全部完成之后就可以獲取當(dāng)前的時(shí)間加以校正,在校正的過(guò)程中有這樣一個(gè)問(wèn)題,希望大家能注意: 時(shí)針的轉(zhuǎn)動(dòng)角度不能以小時(shí)為單位來(lái)計(jì)算,例如:9:58 這時(shí)的時(shí)針指的位置是9,當(dāng)10 :00 時(shí),時(shí)針以下跳轉(zhuǎn)到10的位置,所以時(shí)針的角度要以分鐘或者秒來(lái)計(jì)算,分針的角度跳轉(zhuǎn)要以分鐘或者秒來(lái)計(jì)算,秒針就是每秒跳轉(zhuǎn)6度。

2、還有一點(diǎn)要注意,三個(gè)指針的轉(zhuǎn)動(dòng)圓心問(wèn)題,利用transform-origin 來(lái)定指針轉(zhuǎn)動(dòng)點(diǎn)一定要定準(zhǔn)

 

 

 

 

 

 

以上這篇淺談時(shí)鐘的生成(js手寫簡(jiǎn)潔代碼)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • JavaScript制作游戲搖桿方向盤

    JavaScript制作游戲搖桿方向盤

    本文主要介紹了JavaScript制作游戲搖桿方向盤,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2014-04-04
  • 微信小程序?qū)崿F(xiàn)側(cè)邊欄二級(jí)聯(lián)動(dòng)

    微信小程序?qū)崿F(xiàn)側(cè)邊欄二級(jí)聯(lián)動(dòng)

    這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)側(cè)邊欄二級(jí)聯(lián)動(dòng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • 微信小程序獲取用戶openid的方法詳解

    微信小程序獲取用戶openid的方法詳解

    小程序的openid相當(dāng)重要,它是用戶的唯一標(biāo)識(shí)id,牽扯的支付,登錄,授權(quán)等,下面這篇文章主要給大家介紹了關(guān)于微信小程序獲取用戶openid的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • JavaScript循環(huán)鏈表實(shí)現(xiàn)方法

    JavaScript循環(huán)鏈表實(shí)現(xiàn)方法

    這篇文章主要給大家介紹了關(guān)于JavaScript循環(huán)鏈表實(shí)現(xiàn)的相關(guān)資料,循環(huán)鏈表和單向鏈表很相似,唯一的區(qū)別是循環(huán)鏈表的尾節(jié)點(diǎn)是指向頭節(jié)點(diǎn)的,需要的朋友可以參考下
    2023-07-07
  • 完美解決IE不支持Data.parse()的問(wèn)題

    完美解決IE不支持Data.parse()的問(wèn)題

    下面小編就為大家?guī)?lái)一篇完美解決IE不支持Data.parse()的問(wèn)題。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起 小編過(guò)來(lái)看看吧
    2016-11-11
  • js帶點(diǎn)自動(dòng)圖片輪播幻燈片特效代碼分享

    js帶點(diǎn)自動(dòng)圖片輪播幻燈片特效代碼分享

    這篇文章主要為大家詳細(xì)介紹了js帶點(diǎn)自動(dòng)圖片輪播幻燈片特效,圖片輪播效果特別適合做產(chǎn)品展示,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2015-09-09
  • JS實(shí)現(xiàn)從對(duì)象獲取對(duì)象中單個(gè)鍵值的方法示例

    JS實(shí)現(xiàn)從對(duì)象獲取對(duì)象中單個(gè)鍵值的方法示例

    這篇文章主要介紹了JS實(shí)現(xiàn)從對(duì)象獲取對(duì)象中單個(gè)鍵值的方法,涉及javascript數(shù)組對(duì)象遍歷、事件監(jiān)聽(tīng)、處理等相關(guān)操作技巧,需要的朋友可以參考下
    2019-06-06
  • js觸發(fā)asp.net的Button的Onclick事件應(yīng)用

    js觸發(fā)asp.net的Button的Onclick事件應(yīng)用

    由于asp.net采用的是事件驅(qū)動(dòng)模式,所以默認(rèn)用戶按回車并沒(méi)有觸發(fā)按鈕的onclick事件。用戶按回車也不是沒(méi)有提交表單,通過(guò)httpwath可以看到,實(shí)際上頁(yè)面表單是提交到了form下的action頁(yè)面,只不過(guò)沒(méi)有觸發(fā)onclick事件而已,感興趣的朋友可以了解下,或許對(duì)你有所幫助
    2013-02-02
  • 小程序中如何繪制思維導(dǎo)圖詳解

    小程序中如何繪制思維導(dǎo)圖詳解

    小程序相信大家應(yīng)該都很熟悉了,對(duì)于小程序的整個(gè)運(yùn)營(yíng)的方法,很多運(yùn)營(yíng)都比較關(guān)注,今天希望通過(guò)一個(gè)思維導(dǎo)圖,這篇文章主要給大家介紹了關(guān)于小程序中如何繪制思維導(dǎo)圖的相關(guān)資料,需要的朋友可以參考下
    2021-10-10
  • javascript實(shí)現(xiàn)日期時(shí)間動(dòng)態(tài)顯示示例代碼

    javascript實(shí)現(xiàn)日期時(shí)間動(dòng)態(tài)顯示示例代碼

    這篇文章主要介紹了javascript實(shí)現(xiàn)日期時(shí)間動(dòng)態(tài)顯示示例代碼,頁(yè)面動(dòng)態(tài)顯示時(shí)間變化的方法有很多,本文為大家介紹下使用javascript的具體實(shí)現(xiàn),感興趣的朋友可以參考一下
    2015-09-09

最新評(píng)論

郧西县| 漠河县| 南雄市| 清远市| 西藏| 蓝山县| 龙岩市| 五指山市| 枣强县| 西昌市| 遂川县| 丰顺县| 宣武区| 新营市| 东安县| 景谷| 恩施市| 萨嘎县| 塔城市| 黎平县| 娱乐| 保山市| 大石桥市| 盐源县| 龙陵县| 滕州市| 视频| 盐池县| 宿州市| 北流市| 莱芜市| 丘北县| 威海市| 金川县| 广宗县| 垦利县| 正定县| 婺源县| 龙口市| 余姚市| 琼海市|