茄子在线看片免费人成视频,午夜福利精品a在线观看,国产高清自产拍在线观看,久久综合久久狠狠综合

    <s id="ddbnn"></s>
  • <sub id="ddbnn"><ol id="ddbnn"></ol></sub>

  • <legend id="ddbnn"></legend><s id="ddbnn"></s>

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

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

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

    名單

    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;

    //初始化函數(shù)

    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;

    //初始化函數(shù)

    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技術專欄

    更多信息請查看網(wǎng)頁制作
    易賢網(wǎng)手機網(wǎng)站地址:CSS3+js實現(xiàn)簡單的時鐘特效
    由于各方面情況的不斷調整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復僅供參考,敬請考生以權威部門公布的正式信息和咨詢?yōu)闇剩?/div>

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

    • 報班類型
    • 姓名
    • 手機號
    • 驗證碼
    關于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
    工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
    聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
    咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網(wǎng)