JavaScript開發頁面加載動畫插件

我們在加載一些比較大的網頁的時候,經常網卡的等原因,加載很慢,這個時候網站頁面是空白或者不完整的,那么我們需要一種加載動畫來改善用戶體驗。
下面我們就開始插件的開發,直接上代碼,代碼有詳細注釋。
代碼:

/*頁面加載logo動畫插件*/
;(function (w, undefined) {
    /*創建樣式*/
    var style = w.document.createElement('style');
    style.type = 'text/css';
    style.innerHTML = "@keyframes lds-ripple{0%{top:94px;left:94px;width:0;height:0;opacity:1}100%{top:17px;left:17px;width:154px;height:154px;opacity:0}}@-webkit-keyframes lds-ripple{0%{top:94px;left:94px;width:0;height:0;opacity:1}100%{top:17px;left:17px;width:154px;height:154px;opacity:0}}.lds-ripple div{box-sizing:content-box;position:absolute;border-width:6px;border-style:solid;opacity:1;border-radius:50%;-webkit-animation:lds-ripple 1s cubic-bezier(0,0.2,0.8,1) infinite;animation:lds-ripple 1s cubic-bezier(0,0.2,0.8,1) infinite}.lds-ripple div:nth-child(1){border-color:#36f}.lds-ripple div:nth-child(2){border-color:#c90;-webkit-animation-delay:-0.5s;animation-delay:-0.5s}.lds-ripple{width:200px!important;height:200px!important;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}#vj-loading{width:100%;height:100%;position:absolute;left:0;top:0;background-color:rgba(0,0,0,.4)}";
    /*創建根div節點*/
    var root = w.document.createElement('div');
    root.setAttribute('id', 'vj-loading');
    /*將樣式節點加入根節點*/
    root.appendChild(style);
    /*創建加載動畫div*/
    var ripple = w.document.createElement('div');
    /*添加class樣式*/
    ripple.classList.add('lds-ripple');
    /*添加兩個div節點*/
    ripple.appendChild(w.document.createElement('div'));
    ripple.appendChild(w.document.createElement('div'));
    /*將ripple節點添加到根節點*/
    root.appendChild(ripple);
    /*將根節點添加到body中*/
    w.document.body.appendChild(root);
    /*監聽頁面加載事件*/
    w.document.onreadystatechange = function () {
        if (w.document.readyState === 'complete') {
            w.document.body.removeChild(root);
        }
    }
})(window);

注意:該文件最好引入在body標簽開頭效果最佳,切記不要在head中引入,因為那個時候還檢測不到body節點。
到此,插件開發完畢,想要在那個頁面使用就引入該js文件吧。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,422評論 25 708
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,969評論 19 139
  • 文章作者:Tyan博客:noahsnail.com | CSDN | 簡書 1. 問題描述 Given an ar...
    SnailTyan閱讀 471評論 0 0
  • 最難熬的時候,應該是從學校過渡到社會的時候,看到喜歡的人和異性甜蜜的時候,身邊沒人相信你的時候,一個人難過需...
    鵑兒閱讀 206評論 0 0
  • 什么是高級色 先從高級說起 漢語定義:質量、水平超過一般的,階段、級別達到一定高度的。 英 high-grade;...
    洛文院閱讀 4,178評論 3 14