# 實作 Loader ( 先記錄,待理解 css 動畫部分 ) ###### tags: `實作 Style` ## 結果 ![](https://i.imgur.com/tp8vRaX.gif) --- ## 概念 * 有一個整個畫面的 div => custom-preloader * custom-preloader 畫面中有 轉圈圈效果 * 放在 _Layout 給全域 (View) 呼叫 --- ## 目前用法 * 在 a 標籤的 onclick 事件呼叫 showLoader(),就可以達到讀取的效果,跳轉後就會消失 * ajax 時呼叫 --- ## HTML ``` <div id="custom-preloader" class="d-none"> <div id="loader"></div> </div> ``` --- ## Scirpt ``` var showLoader = function () { $("#custom-preloader").attr("style", "display: block !important"); }; var hideLoader = function () { $("#custom-preloader").attr("style", "display: none !important"); } ``` --- ## Style ``` #custom-preloader { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: #3b3f442e; z-index: 1050; } #loader { display: block; position: relative; left: 50%; top: 50%; width: 150px; height: 150px; margin: -75px 0 0 -75px; border-radius: 50%; border: 3px solid transparent; border-top-color: #9370DB; -webkit-animation: spin 2s linear infinite; animation: spin 2s linear infinite; } #loader:before { content: ""; position: absolute; top: 5px; left: 5px; right: 5px; bottom: 5px; border-radius: 50%; border: 3px solid transparent; border-top-color: #BA55D3; -webkit-animation: spin 3s linear infinite; animation: spin 3s linear infinite; } #loader:after { content: ""; position: absolute; top: 15px; left: 15px; right: 15px; bottom: 15px; border-radius: 50%; border: 3px solid transparent; border-top-color: #FF00FF; -webkit-animation: spin 1.5s linear infinite; animation: spin 1.5s linear infinite; } @-webkit-keyframes spin { 0% { -webkit-transform: rotate(0deg); -ms-transform: rotate(0deg); transform: rotate(0deg); } 100% { -webkit-transform: rotate(360deg); -ms-transform: rotate(360deg); transform: rotate(360deg); } } @keyframes spin { 0% { -webkit-transform: rotate(0deg); -ms-transform: rotate(0deg); transform: rotate(0deg); } 100% { -webkit-transform: rotate(360deg); -ms-transform: rotate(360deg); transform: rotate(360deg); } } ``` [來源-Bootstrap Snippet-preloader by Shakibur22](https://bootsnipp.com/snippets/dlAQB)