在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美

當前位置:雨林木風下載站 > 網(wǎng)頁設計教程 > 詳細頁面

css3+js繪制動態(tài)時鐘(附代碼)

css3+js繪制動態(tài)時鐘(附代碼)

更新時間:2025-11-21 文章作者:未知 信息來源:網(wǎng)絡 閱讀次數(shù):

網(wǎng)頁的本質就是超級文本標記語言,通過結合使用其他的Web技術(如:腳本語言、公共網(wǎng)關接口、組件等),可以創(chuàng)造出功能強大的網(wǎng)頁。因而,超級文本標記語言是萬維網(wǎng)(Web)編程的基礎,也就是說萬維網(wǎng)是建立...
網(wǎng)頁的本質就是超級文本標記語言,通過結合使用其他的Web技術(如:腳本語言、公共網(wǎng)關接口、組件等),可以創(chuàng)造出功能強大的網(wǎng)頁。因而,超級文本標記語言是萬維網(wǎng)(Web)編程的基礎,也就是說萬維網(wǎng)是建立在超文本基礎之上的。超級文本標記語言之所以稱為超文本標記語言,是因為文本中包含了所謂“超級鏈接”點。
本章給大家介紹如何使用css3與js實現(xiàn)動態(tài)時鐘效果,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

先看看效果圖:

1.jpg

首先,思考了一下頁面的布局,大致需要4層div,最底層是一個表盤的背景圖,然后其余3層分別是時針,分針,秒針的圖層.

html代碼如下:

<div class="dial">
</div>
<div class="bigdiv bigdiv1" id="secondHand">
    <div class="secondHand"></div>
</div>
<div class="bigdiv bigdiv2" id="minuteHand">
    <div class="minuteHand"></div>
</div>
<div class="bigdiv bigdiv3" id="hourHand">
    <div class="center"></div>
    <div class="hourHand"></div>
</div>

變量名是隨便起的,不要介意; class=center的這個div是表中心那個小黑點.

時針是60*60*60s轉一圈, 分針是60*60s轉一圈, 秒針是60s轉一圈, 所以css代碼如下:

.dial{
    width:600px;
    height:600px;
    margin:0 auto;
    position: absolute;
    border-radius: 50%;
    overflow: hidden;
    background-color: rgba(153,50,204,0.2);
    background-image: url(img/表盤.jpg);
    background-size: 100% 100%;
}
.bigdiv{
    width:600px;
    height:600px;
    margin:0 auto;
    position: absolute;
    border-radius: 50%;
    overflow: hidden;
}
.bigdiv>div{
    position: absolute;
    left:298px;
    border-radius: 100px;
}
.bigdiv1{
    animation: moves 60s steps(60) infinite;
}
.bigdiv1 .secondHand{
    width:4px;
    height:250px;
    background-color: red;
    top:50px;
    left:298px;
}
.bigdiv2{
    animation: moves 3600s steps(3600) infinite;
}
.bigdiv2 .minuteHand{
    width:6px;
    height:180px;
    background-color: green;
    top:120px;
    left:297px;
}
.bigdiv3{
    animation: moves 216000s steps(216000) infinite;
}
.bigdiv3 .hourHand{
    width:8px;
    height:160px;
    background-color: orange;
    top:140px;
    left:296px;
    border-radius: 100px;
}
.bigdiv .center{
    top:290px;
    left:290px;
    width:20px;
    height:20px;
    background-color: black;
    z-index: 2;
}
@keyframes moves{
    from{ transform: rotateZ(0deg); }
    to{ transform: rotateZ(360deg); }
}

這一步做完后效果圖是這個樣子的:

2.png

然后用js計算當前時間,

var date = new Date();
var hours = date.getHours();
var minutes = date.getMinutes();
var seconds = date.getSeconds();

然后計算當前每個針的旋轉角度

var secondAngle = seconds;
var minuteAngle = minutes * 60 + seconds;
var hourAngle = (60/12) * ((hours%12) * 3600 + minuteAngle);

現(xiàn)在的思路就是:每個針會按照自己定的時間轉一圈,初始角度也能知道,怎么組成一個顯示當前時間的動態(tài)鐘表呢?

剛開始的想法是讓這3層div旋轉對應的角度,然后再開始,后來一想不行,因為它還是固定的時間旋轉一周,指針指向會有偏差,

現(xiàn)在需要的是頁面進來的第一圈旋轉固定角度,其余的按照原來固定的時間旋轉一周就行了,

css3里面有一個animation-delay屬性,它表示的意思是動畫延遲,負數(shù)就表示提前開始(比如-5s就表示動畫從第5s的時間開始),

剛好可以用到,讓這幾個指針提前開始對應的角度.

js代碼如下:

hourHand.style.cssText = "animation-delay: -"+ hourAngle +"s";
minuteHand.style.cssText = "animation-delay: -"+ minuteAngle +"s";
secondHand.style.cssText = "animation-delay: -"+ secondAngle +"s";

最后自己再加了個動態(tài)時間在鐘表的上面展示

完整代碼:

<!DOCTYPE html>
<html>

	<head>
		<meta charset="UTF-8">
		<title></title>
		<style>
			body,
			html {
				margin: 0;
			}
			
			.location {
				position: relative;
				width: 600px;
				height: 600px;
				left: calc(50% - 300px);
			}
			
			.dial {
				width: 600px;
				height: 600px;
				margin: 0 auto;
				position: absolute;
				border-radius: 50%;
				overflow: hidden;
				background-color: rgba(153, 50, 204, 0.2);
				background-image: url(img/表盤.jpg);
				background-size: 100% 100%;
			}
			
			.bigdiv {
				width: 600px;
				height: 600px;
				margin: 0 auto;
				position: absolute;
				border-radius: 50%;
				overflow: hidden;
			}
			
			.bigdiv>div {
				position: absolute;
				left: 298px;
				border-radius: 100px;
			}
			
			.bigdiv1 {
				animation: moves 60s steps(60) infinite;
			}
			
			.bigdiv1 .secondHand {
				width: 4px;
				height: 250px;
				background-color: red;
				top: 50px;
				left: 298px;
			}
			
			.bigdiv2 {
				animation: moves 3600s steps(3600) infinite;
			}
			
			.bigdiv2 .minuteHand {
				width: 6px;
				height: 180px;
				background-color: green;
				top: 120px;
				left: 297px;
			}
			
			.bigdiv3 {
				animation: moves 216000s steps(216000) infinite;
			}
			
			.bigdiv3 .hourHand {
				width: 8px;
				height: 160px;
				background-color: orange;
				top: 140px;
				left: 296px;
				border-radius: 100px;
			}
			
			.bigdiv .center {
				top: 290px;
				left: 290px;
				width: 20px;
				height: 20px;
				background-color: black;
				z-index: 2;
			}
			
			@keyframes moves {
				from {
					transform: rotateZ(0deg);
				}
				to {
					transform: rotateZ(360deg);
				}
			}
			
			#dateshow {
				text-align: center;
			}
		</style>

	</head>

	<body>
		<h1 id="dateshow"></h1>
		<div class="location">
			<div class="dial"></div>
			<div class="bigdiv bigdiv1" id="secondHand">
				<div class="secondHand"></div>
			</div>
			<div class="bigdiv bigdiv2" id="minuteHand">
				<div class="minuteHand"></div>
			</div>
			<div class="bigdiv bigdiv3" id="hourHand">
				<div class="center"></div>
				<div class="hourHand"></div>
			</div>
		</div>
		<script>
			var dateshow = document.getElementById("dateshow");
			var clock = {
				weeks: ["一", "二", "三", "四", "五", "六", "日"],
				getDate: function() {
					date = new Date();
					year = date.getFullYear();
					month = date.getMonth() + 1;
					day = date.getDate();
					hours = date.getHours();
					minutes = date.getMinutes();
					seconds = date.getSeconds();
					week = date.getDay(); // 星期
					dateText = year + "年" + month + "月" + clock.format(day) + "日 星期" + clock.formatnum(week) + " " +
						clock.format(hours) + ":" + clock.format(minutes) + ":" + clock.format(seconds);
					return dateText;
				},
				format: function(data) {
					if(data.toString().length == 1) {
						data = "0" + data;
					};
					return data;
				},
				formatnum: function(num) {
					return clock.weeks[num - 1];
				},
				showdate: function() {
					dateshow.innerText = clock.getDate();
				},
				go: function() {
					var secondHand = document.getElementById("secondHand");
					var minuteHand = document.getElementById("minuteHand");
					var hourHand = document.getElementById("hourHand");
					date = new Date();
					hours = date.getHours();
					minutes = date.getMinutes();
					seconds = date.getSeconds();
					var secondAngle = seconds;
					var minuteAngle = minutes * 60 + seconds;
					var hourAngle = (60 / 12) * ((hours % 12) * 3600 + minuteAngle);
					hourHand.style.cssText = "animation-delay: -" + hourAngle + "s";
					minuteHand.style.cssText = "animation-delay: -" + minuteAngle + "s";
					secondHand.style.cssText = "animation-delay: -" + secondAngle + "s";
				}

			}
			clock.go();
			clock.showdate();
			setInterval("clock.showdate()", 1000);
		</script>
	</body>

</html>

以上就是css3+js繪制動態(tài)時鐘(附代碼)的詳細內容,更多請關注php中文網(wǎng)其它相關文章!


網(wǎng)站建設是一個廣義的術語,涵蓋了許多不同的技能和學科中所使用的生產(chǎn)和維護的網(wǎng)站。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統(tǒng)下載排行

在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美
  • <li id="86scu"><menu id="86scu"></menu></li>
    <li id="86scu"></li>
    <button id="86scu"></button>
  • <s id="86scu"></s><button id="86scu"><menu id="86scu"></menu></button>
  • 国产又粗又猛又爽又黄的网站| 涩多多在线观看| 福利在线一区二区| 五月天综合婷婷| 天天综合成人网| 中文字幕第88页| 亚洲娇小娇小娇小| 亚洲天堂伊人网| 国产欧美激情视频| 在线播放黄色av| 黄色污污在线观看| 99久re热视频精品98| 日本天堂免费a| 我的公把我弄高潮了视频| 国产黄色激情视频| 99热在线这里只有精品| 毛片av免费在线观看| 国产探花在线看| 黄色网址在线免费看| 日韩视频在线视频| 少妇人妻互换不带套| 手机免费av片| 青青草视频在线视频| 青青草视频在线免费播放| 精品人妻一区二区三区四区在线| 激情婷婷综合网| 国产探花在线观看视频| 黄色片免费在线观看视频| 丰满人妻中伦妇伦精品app| 乌克兰美女av| 日韩小视频网站| 久热精品在线播放| 青春草国产视频| 在线观看的毛片| 国产精品igao激情视频| 黄色一级二级三级| 中文字幕の友人北条麻妃| 久久国产乱子伦免费精品| 制服丝袜中文字幕第一页| 精品一区二区三区无码视频| 国产又粗又长又大的视频| 免费久久久久久| a在线观看免费视频| 无码av天堂一区二区三区| 最新天堂中文在线| 丰满人妻中伦妇伦精品app| 神马午夜伦理影院| jizzzz日本| 日本一极黄色片| 妞干网视频在线观看| aaa一级黄色片| 9久久婷婷国产综合精品性色 | 国产一级免费大片| 国产又黄又大又粗视频| 99精品一级欧美片免费播放| 五月婷婷狠狠操| 日本www在线视频| av在线免费观看国产| 一级黄色录像免费看| 久久久久久久久久一区二区| 精品久久久久久无码国产| 日韩在线综合网| 男人添女荫道口喷水视频| 在线播放黄色av| 婷婷视频在线播放| 五月六月丁香婷婷| 超碰中文字幕在线观看| 最新天堂在线视频| 午夜精品久久久久久久99热影院| 99精品免费在线观看| 免费黄色福利视频| 可以免费在线看黄的网站| www黄色av| 亚洲国产日韩欧美在线观看| 亚洲黄色av网址| 爱豆国产剧免费观看大全剧苏畅| 天天综合天天添夜夜添狠狠添| 永久免费的av网站| 特黄特黄一级片| 日韩亚洲欧美一区二区| 久久成人免费观看| 国产xxxxx在线观看| 熟妇人妻无乱码中文字幕真矢织江| 成人在线观看黄| 杨幂毛片午夜性生毛片| 天天成人综合网| 精品无码国产一区二区三区av| 无码人妻丰满熟妇区96| 黄色一级二级三级| 国产精品中文久久久久久| 韩国无码av片在线观看网站| 男女高潮又爽又黄又无遮挡| 亚洲综合在线网站| 路边理发店露脸熟妇泻火| 成人综合视频在线| 国产精欧美一区二区三区白种人| 日本黄网站色大片免费观看| 欧美视频在线播放一区| 久久精品久久99| 国产成人在线免费看| 免费在线观看污网站| 97成人在线免费视频| 久国产精品视频| 亚洲不卡中文字幕无码| 国产美女视频免费看| 精品久久一二三| 熟女熟妇伦久久影院毛片一区二区| 国产 日韩 欧美在线| 欧美精品久久久久久久久25p| 色爽爽爽爽爽爽爽爽| 美女网站免费观看视频| 久久久久久av无码免费网站下载| 动漫av免费观看| 免费看黄在线看| 国产又粗又长又爽视频| 男人添女人下面免费视频| 国产美女无遮挡网站| 国产免费内射又粗又爽密桃视频| 亚洲国产日韩欧美在线观看| aa在线免费观看| 超碰成人免费在线| 特级西西444| 熟女视频一区二区三区| 九九九九九国产| 天天干天天操天天玩| 无码无遮挡又大又爽又黄的视频| 日韩a级在线观看| 九九久久九九久久| 伊人再见免费在线观看高清版| 亚洲美女性囗交| 最新天堂中文在线| 亚洲天堂国产视频| 亚洲天堂国产视频| 在线观看岛国av| 日本黄色a视频| 国产成人免费高清视频| 99精品视频网站| 国产精品久久久影院| 日本福利视频在线观看| 久久这里只有精品8| 97超碰在线人人| www黄色av| 最近中文字幕一区二区| 一级做a免费视频| 日本久久高清视频| www.国产二区| 九九爱精品视频| 日本一本二本在线观看| 九一精品在线观看| 色综合五月婷婷| 国产亚洲黄色片| 欧美精品成人网| 亚洲美女自拍偷拍| 免费国产a级片| 色多多视频在线播放| 在线观看免费视频污| 免费的一级黄色片| av免费在线播放网站| www.久久久久久久久久久| 成年人视频大全| 国产视频一区二区三区在线播放 | 免费网站在线观看黄| 国产欧美日韩小视频| 男人亚洲天堂网| www.-级毛片线天内射视视| 日本一区午夜艳熟免费| 精品999在线| 丰满人妻一区二区三区53号| 国产亚洲精品网站| 亚洲av毛片在线观看| 日本黄色三级大片| 激情五月六月婷婷| 久久久精品麻豆| www.日本少妇| 国产资源中文字幕| 日本在线观看a| 福利视频一区二区三区四区| 亚洲精品性视频| 国产黄色特级片| 每日在线观看av| 午夜免费视频网站| 伊人国产在线视频| 久久久久久久久久福利| 一二三四中文字幕| 免费看av软件| 久久久久久久久久毛片| 亚洲色图久久久| 农村妇女精品一二区| av日韩一区二区三区| 白白操在线视频| 久久久国内精品| 成人毛片100部免费看| 亚洲男人天堂2021| 久久成年人网站| 男人午夜视频在线观看| 手机av在线网| 国产精欧美一区二区三区白种人| 婷婷六月天在线| 午夜免费看视频| 麻豆三级在线观看|