iT邦幫忙

2021 iThome 鐵人賽

DAY 29
1
Modern Web

JavaScript 從 50% 開始,打造函式庫不是問題!系列 第 29

JS 29 - 一個 div 就能完成的發光游泳圈!

  • 分享至 

  • xImage
  •  

大家好!

今天我們要實作網頁完全載入前的載入游泳圈!
我們進入今天的主題吧!


樣式表

#loader {
    width: 10em;
    height: 10em;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    margin: auto;
    opacity: 1;
}

#loader {
    background-color: #142d46;
    border-radius: 50%;
    overflow: hidden;
    animation: rotating 1s linear infinite;
}

#loader::before {
    content: '';
    display: block;
    width: 7.5%;
    height: 7.5%;
    border-radius: 50%;
    background: #00fafa;
    margin: auto;
}

#loader::after {
    content: '';
    display: block;
    width: 85%;
    height: 85%;
    background-color: #19324b;
    border-radius: 50%;
    margin: auto;
    box-shadow: -4.25em -4.625em 0em #00fafa,
                -5.5em 0em 1.25em #00fafa,
                -6.75em 4.625em 2.5em #00fafa;
}

body.loaded #loader {
    opacity: 0;
    transition: opacity 0.5s;
}

@keyframes rotating {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }
}

程式碼

(function () {
    Felix(window).on('load', function () {
        Felix('body')[0].classList.add('loaded');
    });
})();

實測

<body>
    <div id="overlay"></div>
    <div id="loader"></div>
</body>

直接觀看範例


差不多也到尾聲了。
如果對文章有任何疑問,也歡迎在下方提問和建議!
我是 Felix,我們明天再見!


上一篇
JS 28 - 客製化滾動卷軸:樣式多,支援度也廣!
下一篇
JS 30 - 將 JSON 資料應用到統計學!
系列文
JavaScript 從 50% 開始,打造函式庫不是問題!46
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言