中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久

CSS3+js實現簡單的時鐘特效
來源:易賢網 閱讀:2528 次 日期:2015-04-14 14:52:27
溫馨提示:易賢網小編為您整理了“CSS3+js實現簡單的時鐘特效”,方便廣大網友查閱!

學習css3ing,正在學習transfomr,突發奇想用此做個小時鐘,開始吧:

準備前期工作,把時鐘的表盤,時分秒針,實時時間標簽 的大概樣子做好,效果如圖:

名單

html代碼如下:

代碼如下:

<div class="main">

<div id="timeLabel"></div>

<div id="hour"></div>

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

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

</div>

css 代碼如下:

代碼如下:

<style>

* {

margin: 0;

padding: 0;

}

.main {

position: relative;

margin: 100px auto;

width: 300px;

height: 300px;

border-radius: 300px;

border: 1px solid #000;

box-shadow:2px 5px;

}

#timeLabel {

position: absolute;

background-color:pink;

width:100px;

height:30px;

left:100px;

top:180px;

}

#hour {

width: 100px;

height: 10px;

background-color: red;

position:absolute;

left:150px;

top:145px;

}

#minute {

width:120px;

height:8px;

background-color:blue;

position:absolute;

left:150px;

top:146px;

}

#second {

width: 140px;

height: 4px;

background-color: green;

position: absolute;

left: 150px;

top: 148px;

}

</style>

2. 初始化默認時間,和表盤刻度 ,效果如下:

名單2

更改后的css代碼:

代碼如下:

<style>

* {

margin: 0;

padding: 0;

}

.main {

position: relative;

margin: 100px auto;

width: 300px;

height: 300px;

border-radius: 300px;

border: 1px solid #000;

box-shadow: 2px 5px #808080;

}

#timeLabel {

position: absolute;

background-color: pink;

width: 80px;

height: 25px;

left: 110px;

top: 180px;

color: #fff;

line-height: 25px;

text-align: center;

}

#hour {

width: 100px;

height: 10px;

background-color: red;

position: absolute;

left: 150px;

top: 145px;

transform-origin: 0 50%;

}

#minute {

width: 120px;

height: 8px;

background-color: blue;

position: absolute;

left: 150px;

top: 146px;

transform-origin: 0 50%;

}

#second {

width: 140px;

height: 4px;

background-color: green;

position: absolute;

left: 150px;

top: 148px;

transform-origin: 0 50%;

}

.hourPointer, .minuterPointer, .secondPointer {

position: absolute;

transform-origin: 0 50%;

}

.hourPointer {

height: 10px;

width: 12px;

left: 150px;

top: 145px;

background-color: #f00;

z-index:3;

}

.minuterPointer {

height: 8px;

width: 10px;

left: 150px;

top: 146px;

background-color: #b6ff00;

z-index: 2;

}

.secondPointer {

height: 6px;

width: 8px;

left: 150px;

top: 147px;

background-color: #fa8;

z-index: 1;

}

</style>

初始化 js代碼:

代碼如下:

window.onload = function () {

initClock();

}

var timer = null;

function $(id) {

return document.getElementById(id)

}

function CreateKeDu(pElement, className, deg, translateWidth) {

var Pointer = document.createElement("div");

Pointer.className = className

Pointer.style.transform = "rotate(" + deg + "deg) translate(" + translateWidth + "px)";

pElement.appendChild(Pointer);

}

function initClock() {

var main = $("biaopan");

var timeLabel = $("timeLabel");

var hour = $("hour");

var minute = $("minute");

var second = $("second");

var now = new Date();

var nowHour = now.getHours();

var nowMinute = now.getMinutes();

var nowSecond = now.getSeconds();

//初始化timeLabel

timeLabel.innerHTML = nowHour + ":" + nowMinute + ":" + nowSecond;

//初始化表盤

for (var index = 0; index < 4; index++) {

CreateKeDu(main, "hourPointer", index * 90, 138);

}

for (var index = 0; index < 12; index++) {

CreateKeDu(main, "minuterPointer",index*30, 140);

}

for (var index = 0; index < 60; index++) {

CreateKeDu(main, "secondPointer", index * 6, 142);

}

//初始化時分秒針

second.style.transform = "rotate(" + (nowSecond * 6 - 90) + "deg)";

minute.style.transform = "rotate(" + (nowMinute * 6 + 1 / 10 * nowSecond - 90) + "deg)";

hour.style.transform = "rotate(" + (nowHour * 30 + 1 / 2 * nowMinute + 1 / 120 * nowSecond - 90) + "deg)";

}

3.添加定時器:

js代碼如下:

代碼如下:

//定時器

function startMove() {

clearInterval(timer);

timer = setInterval(function () {

var now = new Date();

var nowSecond = now.getSeconds();

var nowMinute = now.getMinutes();

var nowHour = now.getHours();

second.style.transform = "rotate(" + (nowSecond * 6 - 90) + "deg)";

minute.style.transform = "rotate(" + (nowMinute * 6 + 1 / 10 * nowSecond - 90) + "deg)";

hour.style.transform = "rotate(" + (nowHour * 30 + 1 / 2 * nowMinute + 1 / 120 * nowSecond - 90) + "deg)";

timeLabel.innerHTML = nowHour + ":" + nowMinute + ":" + nowSecond;

}, 1000);

}

4.使用OOP方式更改:

修改后的js代碼如下:

代碼如下:

function Clock() {

//定義屬性

this.main = this.$("biaopan");

this.timeLabel = this.$("timeLabel");

this.hour = this.$("hour");

this.minute = this.$("minute");

this.second = this.$("second");

this.nowHour = null;

this.nowMinute = null;

this.nowSecond = null;

this.timer = null;

var _this = this;

//初始化函數

var init = function () {

_this.getNowTime();

_this.initClock();

_this.InterVal();

}

init();

}

Clock.prototype.$ = function (id) {

return document.getElementById(id)

}

Clock.prototype.CreateKeDu = function (className, deg, translateWidth) {

var Pointer = document.createElement("div");

Pointer.className = className

Pointer.style.transform = "rotate(" + deg + "deg) translate(" + translateWidth + "px)";

this.main.appendChild(Pointer);

}

Clock.prototype.getNowTime = function () {

var now = new Date();

this.nowHour = now.getHours();

this.nowMinute = now.getMinutes();

this.nowSecond = now.getSeconds();

}

Clock.prototype.setPosition = function () {

this.second.style.transform = "rotate(" + (this.nowSecond * 6 - 90) + "deg)";

this.minute.style.transform = "rotate(" + (this.nowMinute * 6 + 1 / 10 * this.nowSecond - 90) + "deg)";

this.hour.style.transform = "rotate(" + (this.nowHour * 30 + 1 / 2 * this.nowMinute + 1 / 120 * this.nowSecond - 90) + "deg)";

}

Clock.prototype.initClock = function () {

//初始化timeLabel

this.timeLabel.innerHTML = this.nowHour + ":" + this.nowMinute + ":" + this.nowSecond;

//初始化表盤

for (var index = 0; index < 4; index++) {

this.CreateKeDu("hourPointer", index * 90, 138);

}

for (var index = 0; index < 12; index++) {

this.CreateKeDu("minuterPointer", index * 30, 140);

}

for (var index = 0; index < 60; index++) {

this.CreateKeDu("secondPointer", index * 6, 142);

}

this.setPosition();

}

Clock.prototype.InterVal = function () {

clearInterval(this.timer);

var _this = this;

this.timer = setInterval(function () {

_this.getNowTime();

_this.second.style.transform = "rotate(" + (_this.nowSecond * 6 - 90) + "deg)";

_this.minute.style.transform = "rotate(" + (_this.nowMinute * 6 + 1 / 10 * _this.nowSecond - 90) + "deg)";

_this.hour.style.transform = "rotate(" + (_this.nowHour * 30 + 1 / 2 * _this.nowMinute + 1 / 120 * _this.nowSecond - 90) + "deg)";

_this.timeLabel.innerHTML = _this.nowHour + ":" + _this.nowMinute + ":" + _this.nowSecond;

}, 1000);

}

最后調用如下:

代碼如下:

window.onload = function () {

new Clock();

}

最終頁面代碼:

代碼如下:

<!DOCTYPE html>

<html xmlns="<a href="

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title></title>

<style>

* {

margin: 0;

padding: 0;

}

.main {

position: relative;

margin: 100px auto;

width: 300px;

height: 300px;

border-radius: 300px;

border: 1px solid #000;

box-shadow: 2px 5px #808080;

}

#timeLabel {

position: absolute;

background-color: pink;

width: 80px;

height: 25px;

left: 110px;

top: 180px;

color: #fff;

line-height: 25px;

text-align: center;

}

#hour {

width: 100px;

height: 10px;

background-color: red;

position: absolute;

left: 150px;

top: 145px;

transform-origin: 0 50%;

}

#minute {

width: 120px;

height: 8px;

background-color: blue;

position: absolute;

left: 150px;

top: 146px;

transform-origin: 0 50%;

}

#second {

width: 140px;

height: 4px;

background-color: green;

position: absolute;

left: 150px;

top: 148px;

transform-origin: 0 50%;

}

.hourPointer, .minuterPointer, .secondPointer {

position: absolute;

transform-origin: 0 50%;

}

.hourPointer {

height: 10px;

width: 12px;

left: 150px;

top: 145px;

background-color: #f00;

z-index: 3;

}

.minuterPointer {

height: 8px;

width: 10px;

left: 150px;

top: 146px;

background-color: #b6ff00;

z-index: 2;

}

.secondPointer {

height: 6px;

width: 8px;

left: 150px;

top: 147px;

background-color: #fa8;

z-index: 1;

}

</style>

<script>

function Clock() {

//定義屬性

this.main = this.$("biaopan");

this.timeLabel = this.$("timeLabel");

this.hour = this.$("hour");

this.minute = this.$("minute");

this.second = this.$("second");

this.nowHour = null;

this.nowMinute = null;

this.nowSecond = null;

this.timer = null;

var _this = this;

//初始化函數

var init = function () {

_this.getNowTime();

_this.initClock();

_this.InterVal();

}

init();

}

Clock.prototype.$ = function (id) {

return document.getElementById(id)

}

Clock.prototype.CreateKeDu = function (className, deg, translateWidth) {

var Pointer = document.createElement("div");

Pointer.className = className

Pointer.style.transform = "rotate(" + deg + "deg) translate(" + translateWidth + "px)";

this.main.appendChild(Pointer);

}

Clock.prototype.getNowTime = function () {

var now = new Date();

this.nowHour = now.getHours();

this.nowMinute = now.getMinutes();

this.nowSecond = now.getSeconds();

}

Clock.prototype.setPosition = function () {

this.second.style.transform = "rotate(" + (this.nowSecond * 6 - 90) + "deg)";

this.minute.style.transform = "rotate(" + (this.nowMinute * 6 + 1 / 10 * this.nowSecond - 90) + "deg)";

this.hour.style.transform = "rotate(" + (this.nowHour * 30 + 1 / 2 * this.nowMinute + 1 / 120 * this.nowSecond - 90) + "deg)";

}

Clock.prototype.initClock = function () {

//初始化timeLabel

this.timeLabel.innerHTML = this.nowHour + ":" + this.nowMinute + ":" + this.nowSecond;

//初始化表盤

for (var index = 0; index < 4; index++) {

this.CreateKeDu("hourPointer", index * 90, 138);

}

for (var index = 0; index < 12; index++) {

this.CreateKeDu("minuterPointer", index * 30, 140);

}

for (var index = 0; index < 60; index++) {

this.CreateKeDu("secondPointer", index * 6, 142);

}

this.setPosition();

}

Clock.prototype.InterVal = function () {

clearInterval(this.timer);

var _this = this;

this.timer = setInterval(function () {

_this.getNowTime();

_this.second.style.transform = "rotate(" + (_this.nowSecond * 6 - 90) + "deg)";

_this.minute.style.transform = "rotate(" + (_this.nowMinute * 6 + 1 / 10 * _this.nowSecond - 90) + "deg)";

_this.hour.style.transform = "rotate(" + (_this.nowHour * 30 + 1 / 2 * _this.nowMinute + 1 / 120 * _this.nowSecond - 90) + "deg)";

_this.timeLabel.innerHTML = _this.nowHour + ":" + _this.nowMinute + ":" + _this.nowSecond;

}, 1000);

}

window.onload = function () {

new Clock();

}

</script>

</head>

<body>

<div class="main" id="biaopan">

<div id="timeLabel"></div>

<div id="hour"></div>

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

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

</div>

</body>

</html>

總結:本例中使用了css3 的transform屬性中的 rotate的旋轉效果和translate的位移效果。

以上所述就是本文的全部內容了,希望本文能夠對大家學習CSS3有所幫助。

更多信息請查看IT技術專欄

更多信息請查看網頁制作
易賢網手機網站地址:CSS3+js實現簡單的時鐘特效
由于各方面情況的不斷調整與變化,易賢網提供的所有考試信息和咨詢回復僅供參考,敬請考生以權威部門公布的正式信息和咨詢為準!

2026上岸·考公考編培訓報班

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
云南網警備案專用圖標
聯系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網
云南網警報警專用圖標
中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久
欧美电影免费观看| 久久se精品一区二区| 国产精品网曝门| 国产精品国码视频| 国产欧美视频一区二区三区| 合欧美一区二区三区| 精品成人国产| 一本大道久久a久久综合婷婷| 亚洲一区二区欧美| 久久香蕉精品| 欧美网站大全在线观看| 国产一区二区在线免费观看 | 欧美激情一区二区三区在线视频观看| 欧美乱妇高清无乱码| 国产免费亚洲高清| 日韩视频一区二区在线观看 | 国产一区91| 亚洲精品日产精品乱码不卡| 亚洲在线观看免费| 欧美国产视频在线观看| 国产视频亚洲| 在线一区日本视频| 久久综合中文| 国产精品多人| 亚洲精品免费电影| 久久久蜜桃一区二区人| 国产精品久久久久久五月尺| 最新国产成人在线观看| 欧美一区二区精品久久911| 欧美激情综合五月色丁香| 国内外成人在线视频| 亚洲欧美日韩国产精品 | 国产精品成人免费| 在线精品观看| 午夜精品免费| 欧美三区在线视频| 亚洲精品在线二区| 美女久久网站| 尤物yw午夜国产精品视频明星| 亚洲男人的天堂在线观看| 欧美理论片在线观看| 亚洲国产精品女人久久久| 久久久91精品国产| 国产精品自拍在线| 中文一区二区| 欧美日韩亚洲网| 日韩视频不卡| 欧美国产精品久久| 亚洲福利小视频| 老巨人导航500精品| 国内外成人免费激情在线视频| 欧美一级黄色网| 国产日韩在线亚洲字幕中文| 亚洲欧美色一区| 国产精品一区=区| 亚洲中无吗在线| 国产精品理论片在线观看| 亚洲线精品一区二区三区八戒| 欧美裸体一区二区三区| 日韩系列在线| 国产精品第一页第二页第三页| 中文欧美日韩| 国产欧美日韩91| 久久国产精品电影| 影音先锋久久| 欧美区视频在线观看| 夜夜嗨av一区二区三区四区| 欧美午夜剧场| 欧美一区二区三区视频免费| 国产一区二区精品久久| 久久综合色一综合色88| 亚洲精选久久| 国产精品乱码| 久久亚洲视频| 夜夜爽av福利精品导航| 国产精品一区二区三区免费观看 | 欧美激情一区二区三区 | 亚洲黄色影片| 欧美精品三级日韩久久| 一本高清dvd不卡在线观看| 国产精品久久久久久久久搜平片| 午夜视黄欧洲亚洲| 一区视频在线| 欧美日精品一区视频| 香蕉乱码成人久久天堂爱免费 | 先锋影院在线亚洲| 狠狠色丁香婷婷综合| 欧美精品久久99久久在免费线| 这里只有精品视频在线| 国产精品男人爽免费视频1| 久久精品国产99| 亚洲清纯自拍| 国产美女精品在线| 欧美韩国一区| 欧美专区在线观看一区| 亚洲九九爱视频| 国产在线不卡视频| 欧美日韩日本国产亚洲在线| 久久精品国产96久久久香蕉 | 亚洲欧美欧美一区二区三区| 精品999在线观看| 欧美性猛片xxxx免费看久爱| 久久精品最新地址| 亚洲性xxxx| 亚洲精品国产无天堂网2021| 国产日韩欧美一区| 欧美激情亚洲激情| 久久精品国产综合精品| 99伊人成综合| 亚洲国产91| 国产亚洲一区二区三区| 欧美色偷偷大香| 欧美不卡视频一区| 久久精品女人天堂| 亚洲欧美另类在线观看| 亚洲精品一区中文| 揄拍成人国产精品视频| 国产日韩欧美在线观看| 欧美视频一区二区| 欧美国产精品| 另类天堂视频在线观看| 欧美尤物一区| 午夜视黄欧洲亚洲| 亚洲香蕉伊综合在人在线视看| 亚洲国产日韩欧美| 激情国产一区| 国内精品久久久久影院优| 久久久久久国产精品mv| 欧美亚洲在线| 亚洲自拍偷拍一区| 亚洲特级片在线| 一区二区三区高清在线| 亚洲免费电影在线| 最新高清无码专区| 亚洲韩国日本中文字幕| 亚洲第一区中文99精品| 欧美日韩在线视频一区| 欧美啪啪一区| 欧美日韩亚洲综合| 欧美日韩国语| 欧美午夜片在线免费观看| 欧美日韩久久| 国产精品二区在线| 国产精品乱码| 国产农村妇女精品一二区| 国产女主播在线一区二区| 国产欧美一区二区三区在线老狼 | 亚洲欧美怡红院| 亚洲一区久久久| 亚洲尤物影院| 午夜一级久久| 欧美在线资源| 久久国产精品99国产精| 一本一本久久a久久精品综合妖精| 国产一区三区三区| 国产一区高清视频| 伊人激情综合| 亚洲国产老妈| 韩国免费一区| 伊人激情综合| 国产一区亚洲| 亚洲国产精品免费| 亚洲欧洲一区二区在线播放| 亚洲国产精品一区二区www| 亚洲肉体裸体xxxx137| 亚洲精品国产精品国自产观看浪潮| 影音先锋久久资源网| 在线不卡亚洲| 99热精品在线| 亚洲一区国产| 欧美一区激情| 欧美一区二区免费| 欧美va天堂va视频va在线| 欧美成人精品h版在线观看| 免费精品视频| 免费观看成人www动漫视频| 欧美精品一区二区蜜臀亚洲 | 国产精品国产三级国产普通话蜜臀| 欧美男人的天堂| 欧美日韩亚洲一区二区三区| 国产精品婷婷| 伊人成综合网伊人222| 91久久在线| 一级日韩一区在线观看| 久久精品99国产精品酒店日本| 久久久久久久综合狠狠综合| 男女视频一区二区| 欧美精品一区二区蜜臀亚洲| 国产麻豆精品在线观看| 极品少妇一区二区三区精品视频| 亚洲国产精品一区二区久| 亚洲日本国产| 久久av最新网址| 欧美精品性视频| 国产女主播一区二区三区| 1024国产精品| 亚洲最新在线| 久久精品国产99| 欧美理论在线| 国产欧美日韩另类视频免费观看|