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,292评论 25 708
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,923评论 18 139
  • 文章作者:Tyan博客:noahsnail.com | CSDN | 简书 1. 问题描述 Given an ar...
    SnailTyan阅读 469评论 0 0
  • 最难熬的时候,应该是从学校过渡到社会的时候,看到喜欢的人和异性甜蜜的时候,身边没人相信你的时候,一个人难过需...
    鹃儿阅读 206评论 0 0
  • 什么是高级色 先从高级说起 汉语定义:质量、水平超过一般的,阶段、级别达到一定高度的。 英 high-grade;...
    洛文院阅读 4,177评论 3 14