小墨の博客

梦想需要付诸行动,否则只能是梦

HTML加载动画实现

在页面加载完成之前或者执行某操作时,先显示要显示的加载动画。

实现原理

先定义一个加载动画元素(最好是纯CSS实现,图片的话可能慢一点),当页面未加载完成之前,先使其“可见”,当页面加载完成后,再使其“不可见”。重要的一点就是怎样知道页面或者元素加载完成了,详情可以看一下:

https://blog.csdn.net/weixin_43670802/article/details/105875167

具体实现

加载动画页面来自:codePen
作者:@majci23

加载动画页面HTML

                       

<div id="loading">
    <div id="loading_bg">
        <div class="loader">Loading...</div>
    </div>
</div>
加载动画页面CSS
/*********LoadingPage*************/

#loading {
  position: absolute;
  background-color: #FFF;:
  top: 0px;
  left: 0px;
  width: 100%;
  height: 100%;
  z-index: 9999;
}
#loading_bg{
  background-color: rgba(0,0,0,0.7);
}
//body {
//  background: #eaecfa;
//}

.loader {
  width: 250px;
  height: 50px;
  line-height: 50px;
  text-align: center;
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
  font-family: helvetica, arial, sans-serif;
  text-transform: uppercase;
  font-weight: 900;
  color: #ce4233;
  letter-spacing: 0.2em;
}
.loader::before, .loader::after {
  content: "";
  display: block;
  width: 15px;
  height: 15px;
  background: #ce4233;
  position: absolute;
  -webkit-animation: load .7s infinite alternate ease-in-out;
  animation: load .7s infinite alternate ease-in-out;
}
.loader::before {
  top: 0;
}
.loader::after {
  bottom: 0;
}

@-webkit-keyframes load {
  0% {
    left: 0;
    height: 30px;
    width: 15px;
  }
  50% {
    height: 8px;
    width: 40px;
  }
  100% {
    left: 235px;
    height: 30px;
    width: 15px;
  }
}

@keyframes load {
  0% {
    left: 0;
    height: 30px;
    width: 15px;
  }
  50% {
    height: 8px;
    width: 40px;
  }
  100% {
    left: 235px;
    height: 30px;
    width: 15px;
  }
}

/********************************/
JS操作
//Loading页面
document.onreadystatechange=function () {
          if (document.readyState=="complete"){
               loadingFade();
          }
}
function loadingFade() {
     var opacity=1;
     //var loadingPage=document.getElementById('loading');
     var loadingBackground=document.getElementById('loading_bg');
     var time=setInterval(function () {
          if (opacity<=0){
               clearInterval(time);
               //loadingPage.remove();
               $('#loading').remove();
          }

          loadingBackground.style.opacity=opacity;
          opacity-=0.4;
     },100);
}

参考
https://blog.csdn.net/qq_39036844/article/details/82454349?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-2&utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-2
https://www.runoob.com/jsref/prop-doc-readystate.html

https://developer.mozilla.org/zh-CN/docs/Web/API/Document/readyState
https://www.cnblogs.com/sunny-sl/p/7977898.html
https://www.cnblogs.com/passlogs/p/6844065.html
https://blog.csdn.net/xiaokui_wingfly/article/details/51502209?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-2&utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-2


本文转载自:https://www.cnblogs.com/tfxz/p/12823673.html

张小弟之家

本文链接:
文章标题:

本站文章除注明转载/出处外,均为原创,若要转载请务必注明出处。转载后请将转载链接通过邮件告知我站,谢谢合作。本站邮箱:admin@only4.work

尊重他人劳动成果,共创和谐网络环境。点击版权声明查看本站相关条款。

    发表评论:

    搜索
    本文二维码
    标签列表
    站点信息
    • 文章总数:508
    • 页面总数:20
    • 分类总数:92
    • 标签总数:208
    • 评论总数:61
    • 浏览总数:225323

    | | |
    | |  Z-Blog PHP