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

SVG實(shí)現(xiàn)時(shí)鐘效果

 更新時(shí)間:2018年07月17日 11:32:04   作者:公旦  
這篇文章主要為大家詳細(xì)介紹了SVG實(shí)現(xiàn)時(shí)鐘效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了SVG實(shí)現(xiàn)時(shí)鐘效果的具體代碼,供大家參考,具體內(nèi)容如下

<!DOCTYPE html>
<html>

<head>
 <meta charset="utf-8"/>
 <title></title>
 <style>
  * {
   margin: 0;
  }
 </style>
</head>

<body>
<svg width="400" height="400">
 <title>SVG Analog Clock</title>
 <circle id="face" cx="125" cy="125" r="100"
     style="fill: #f1f1f1; stroke: #000;"></circle>
 <g id="ticks" transform="translate(125, 125)">
  <path id="triangle" d="M95 0 L 100 -5 L 100 5 Z"
     transform="rotate(360)"></path>
 </g>
 <g id="hands">
  <path id="hour" d="M 125 125 V 75"
     style="fill: none; stroke: black; stroke-width: 6"
     transform="rotate(0)"></path>

  <path id="minute" d="M 125 125 V 50"
     style="fill: none; stroke: black; stroke-width: 4"
     transform="rotate(0)"></path>

  <path id="second" d="M 125 125 Q 100 100 125 80 T 125 40 V 30"
     style="fill: none; stroke: #f00; stroke-width: 2"
     transform="rotate(0)"></path>
 </g>
 <g id="knob" transform="translate(125, 125)">
  <circle cx="0" cy="0" r="6" style="fill: #333;"></circle>
 </g>
</svg>

<script>
 var svgns = "http://www.w3.org/2000/svg";
 var face = document.getElementById("face"),
   ticks = document.getElementById("ticks"),
   triangle = document.getElementById("triangle"),
   txt = document.getElementById("txt");

 for (var i = 0; i < 11; i++) {
  var temp_triangle = triangle.cloneNode(true);
  var angle = i * 30 + 30;
  temp_triangle.setAttribute("transform", "rotate(" + angle + ")");
  ticks.appendChild(temp_triangle);
  ticks.setAttribute("transform", "translate(125, 125), rotate(-90)");
 }

 var hourHand = document.getElementById("hour"),
   minuteHand = document.getElementById("minute"),
   secondHand = document.getElementById("second");
 var hourTransform, minuteTransform, secondTransform;
 var secPer12Hours = 60 * 60 * 12,
   secPerHour = 60 * 60,
   secPerMinute = 60;

 (function init() {
  hourTransform = hourHand.transform.baseVal.getItem(0);
  minuteTransform = minuteHand.transform.baseVal.getItem(0);
  secondTransform = secondHand.transform.baseVal.getItem(0);
  updateClock();
 })()

 function updateClock() {
  var date = new Date();
  var sec = date.getMilliseconds() / 1000 +
    date.getSeconds() +
    date.getMinutes() * 60 +
    date.getHours() * 60 * 60;
  var hourAngle = (sec % secPer12Hours) * 360 / secPer12Hours,
    minuteAngle = (sec % secPerHour) * 360 / secPerHour,
    secondAngle = (sec % secPerMinute) * 360 / secPerMinute;
  hourTransform.setRotate(hourAngle, 125, 125);
  minuteTransform.setRotate(minuteAngle, 125, 125);
  secondTransform.setRotate(secondAngle, 125, 125);
  window.requestAnimationFrame(updateClock);
 }

</script>
</body>

</html>

瀏覽器需要支持:requestAnimationFrame
有關(guān)requestAnimationFrame的相關(guān)知識請自行查閱

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • javascript實(shí)現(xiàn)的動(dòng)態(tài)文字變換

    javascript實(shí)現(xiàn)的動(dòng)態(tài)文字變換

    javascript實(shí)現(xiàn)的動(dòng)態(tài)文字變換...
    2007-07-07
  • KnockoutJs快速入門教程

    KnockoutJs快速入門教程

    這篇文章主要為大家分享了KnockoutJs快速入門教程,了解KnockoutJs到底是什么?如何使用KnockoutJS中的data-bind語法來將模型數(shù)據(jù)綁定到DOM元素中,感興趣的小伙伴們可以參考一下
    2016-05-05
  • JavaScript prototype 使用介紹

    JavaScript prototype 使用介紹

    用過JavaScript的同學(xué)們肯定都對prototype如雷貫耳,但是這究竟是個(gè)什么東西卻讓初學(xué)者莫衷一是,只知道函數(shù)都會有一個(gè)prototype屬性,可以為其添加函數(shù)供實(shí)例訪問,其它的就不清楚了,最近看了一些 JavaScript高級程序設(shè)計(jì),終于揭開了其神秘面紗
    2013-08-08
  • js中位數(shù)不足自動(dòng)補(bǔ)位擴(kuò)展padLeft、padRight實(shí)現(xiàn)代碼

    js中位數(shù)不足自動(dòng)補(bǔ)位擴(kuò)展padLeft、padRight實(shí)現(xiàn)代碼

    這篇文章主要介紹了js中位數(shù)不足自動(dòng)補(bǔ)位擴(kuò)展之padLeft、padRight實(shí)現(xiàn)方法,主要是通過String.prototype擴(kuò)展實(shí)現(xiàn),需要的朋友可以參考下
    2020-04-04
  • 高效的獲取當(dāng)前元素是父元素的第幾個(gè)子元素

    高效的獲取當(dāng)前元素是父元素的第幾個(gè)子元素

    例如處理事件的時(shí)候,有時(shí)候需要知道當(dāng)前點(diǎn)擊的是第幾個(gè)子節(jié)點(diǎn),而HTML DOM本身并沒有直接提供相應(yīng)的屬性,需要自己來計(jì)算。感興趣的朋友可以了解下本文
    2013-10-10
  • Javascript中神奇的this

    Javascript中神奇的this

    這篇文章主要為大家介紹了Javascript中神奇的this,何為this?this的作用有哪些、以及this神奇的綁定規(guī)則,感興趣的小伙伴們可以參考一下
    2016-01-01
  • JS動(dòng)態(tài)顯示倒計(jì)時(shí)效果

    JS動(dòng)態(tài)顯示倒計(jì)時(shí)效果

    這篇文章主要介紹了JS實(shí)現(xiàn)倒計(jì)時(shí)效果動(dòng)態(tài)顯示倒計(jì)時(shí)功能,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-12-12
  • 阻止mousemove鼠標(biāo)移動(dòng)或touchmove觸摸移動(dòng)觸發(fā)click點(diǎn)擊事件

    阻止mousemove鼠標(biāo)移動(dòng)或touchmove觸摸移動(dòng)觸發(fā)click點(diǎn)擊事件

    這篇文章主要為大家介紹了阻止mousemove或touchmove與click事件同時(shí)觸發(fā)技巧,一個(gè)按鈕綁定了多個(gè)事件,所以就要想辦法阻止 mouse 鼠標(biāo)事件或 touch 觸摸事件 與 click 事件同時(shí)觸發(fā),不然每次拖拽按鈕后都會觸發(fā) click 事件,這顯然是不友好的
    2023-06-06
  • JS出現(xiàn)404錯(cuò)誤原理及解決方案

    JS出現(xiàn)404錯(cuò)誤原理及解決方案

    這篇文章主要介紹了JS出現(xiàn)404錯(cuò)誤原理及解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • Web開發(fā)必知Javascript技巧大全

    Web開發(fā)必知Javascript技巧大全

     JavaScript是一個(gè)絕冠全球的編程語言,可用于Web開發(fā)、移動(dòng)應(yīng)用開發(fā)(PhoneGap、Appcelerator)、服務(wù)器端開發(fā)(Node.js和Wakanda)等等,通過本文給大家介紹Web開發(fā)必知Javascript技巧大全,需要的朋友參考下吧
    2016-02-02

最新評論

阿城市| 防城港市| 万全县| 密山市| 贵港市| 博客| 临颍县| 武胜县| 酒泉市| 东光县| 墨玉县| 大埔区| 墨江| 灌阳县| 区。| 太白县| 江北区| 长沙市| 巴林右旗| 和硕县| 仙桃市| 诸城市| 阿合奇县| 米林县| 通州市| 赞皇县| 莫力| 南溪县| 应城市| 商南县| 正镶白旗| 九龙坡区| 洪泽县| 团风县| 洱源县| 澳门| 镇宁| 长垣县| 额济纳旗| 淅川县| 凤凰县|