2017年11月25日

由于最近在写一个web项目,由于前端框架开发,和后台查数据的语法不成熟导致页面加载速度过慢,遂想到用loading效果来过渡:

粗略的查阅了下网上的实现方法,在此总结下方法实现

先上效果图:

代码:

<link rel="stylesheet" href="http://lee.dkfirst.cn/lee_loading.css"><script src="http://lee.dkfirst.cn/lee_loading.js"></script>

上面两段代码放在<head></head>中间即可

思路详解:

JS部分:在页面加载前就先加载一个div罩,等待页面全部加载完成后,关闭此div罩

//获取浏览器页面可见高度和宽度
var _PageHeight = document.documentElement.clientHeight,_PageWidth = document.documentElement.clientWidth;
//计算loading框距离顶部和左部的距离(loading框小部件的宽度为90px,高度为90px)
var _LoadingTop = _PageHeight > 90 ? (_PageHeight - 90) / 2 : 0,_LoadingLeft = _PageWidth > 90 ? (_PageWidth - 90) / 2 : 0;
//在页面未加载完毕之前显示的loading Html自定义内容
var _LoadingHtml = '<div id="loadingDiv" style="position:absolute;left:0;width:100%;height:' + _PageHeight + 'px;top:0;background:#FFFFFF;opacity:1.0;filter:alpha(opacity=80);z-index:10000;"><div class="spinner" style="position: top: 60px; margin:' + _LoadingTop + 'px auto ;"></div></div>';
//呈现loading效果
document.write(_LoadingHtml);//监听加载状态改变
document.onreadystatechange = completeLoading;//加载状态为complete时移除loading效果
function completeLoading() {if (document.readyState == "complete") {
        //此引用了Jquery,页面没有导jq包的,需要自行加入$("#loadingDiv").fadeOut(1500);}
}CSS部分:CSS3构造一个无限循环动作的loading框
.spinner {width: 60px;height: 60px;background-color: #67CF22;margin: 100px auto;-webkit-animation: rotateplane 1.2s infinite ease-in-out;animation: rotateplane 1.2s infinite ease-in-out;}@-webkit-keyframes rotateplane {0% { -webkit-transform: perspective(120px) }50% { -webkit-transform: perspective(120px) rotateY(180deg) }100% { -webkit-transform: perspective(120px) rotateY(180deg) rotateX(180deg) }
}@keyframes rotateplane {0% {transform: perspective(120px) rotateX(0deg) rotateY(0deg);-webkit-transform: perspective(120px) rotateX(0deg) rotateY(0deg)} 50% {transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg);-webkit-transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg)} 100% {transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg);-webkit-transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg);}
}

Loading效果实现:加载新页面前的等待过渡画面相关推荐

  1. html界面等待状态,html页面Loading效果实现:加载新页面前的等待过渡画面

    在 里面引入以下css文件和js文件即可实现 loading.css如下 .spinner { width: 60px; height: 60px; background-image: linear- ...

  2. js跳转新页面,指定div加载新页面

    1.在当前页面上跳转新页面 window.open('#要载入的界面'); window.open('graphReportController.do?list&id=dzdxz'); win ...

  3. android webview 刷新当前页面,Android WebView时重新加载导致页面刷新的问题

    最近碰到一个需求,用WebView加载页面,选择了筛选条件之后,跳转到新的webVIew页面之后再返回,原来的筛选条件由于页面刷新导致已经清空,怎样才能解决返回的时候不去重新加载页面呢,网上很多答案是 ...

  4. WebView通过loadDataWithBaseURL加载本地页面卡死

    最近开发遇到一个使用 Android WebView加载本地页面进度条始终卡在20%左右不动的情况.打 Log.抓包发现卡在 WebView对象调用 loadDataWithBaseURL方法. 去网 ...

  5. JS判断访问设备(userAgent)加载不同页面 JS判断客户端操作系统类型(platform)

    //平台.设备和操作系统var system ={win : false,mac : false,xll : false};//检测平台var p = navigator.platform;syste ...

  6. 关于ViewPager的适配器之——pagerAdapter加载缓存页面的机制

    ViewPager有很多的适配器,如pagerAdapter,FragmentPagerAdapter等, 今天我想重点谈的是关于pagerAdapter加载缓存页面的机制的问题. 首先,使用page ...

  7. vue进入页面执行的钩子函数_解决VUE mounted 钩子函数执行时 img 未加载导致页面布局的问题...

    项目需求:图片加载时,当鼠标滚动至当前图片进行加载并加上上滑特效,实现这个效果需要对文档文档滚动位置和图片的当前位置进行比较.但是mounted 钩子函数执行时img图片并未加载出来也就是占位为空,导 ...

  8. php frameset不显示,如何解决php加载frameset页面时显示空白问题

    如何解决php加载frameset页面时显示空白问题 发布时间:2020-06-09 11:46:54 来源:亿速云 阅读:113 作者:Leah 如何解决php加载frameset页面时显示空白问题 ...

  9. JS本地存储加载渲染页面信息、动态更新本地存储数据

    本地存储数据加载到页面: 从本地存储中获取数据,并由字符串基础类型转换为对象类型(存储至堆内存中) 初始化变量data 为空数组(变量data存储在栈内存中) 将获取的数据赋值给变量data (实质为 ...

最新文章

  1. 为什么 Redis 的吞吐量能这么高
  2. 关于querySelector 和 document.getElementsByTagName 选中集合问题
  3. jvm性能调优实战 - 38System.gcy引发的惨案
  4. Linux | 编译原理、gcc的命令参数、自动化构建工具 make/Makefile
  5. windows 弹shell_Windows系统常用免费软件“红黑榜”
  6. 64位/32位操作系统ODBC的设定方法
  7. python循环小练习
  8. 如何系统地学习深度学习(从初级到高级,初学者必看)
  9. HTML注释和js注释,js 注释
  10. 7-6 输出上三角队形
  11. 浏览器快捷键大全、常用快捷键整理
  12. 植树问题(python)
  13. mysql中avg函数如果有空值_对于 AVG 函数,如果列中所有行的值都是 null,那么 AVG 函数返回的值是( )...
  14. DNS域名解析服务--Named服务
  15. tcp 与udp 的区别
  16. vant文件上传Uploader图片压缩
  17. IOS 屏幕适配(一)理论篇
  18. mysql生成ascii格式文本文件_linux备份mysql文件并恢复的脚本,以及其中出现的错误:ERROR: ASCII '\0' appeared in the statement...
  19. VS无法打开 NuGet包
  20. 三十五岁失业的程序员,后来都干什么去了?

热门文章

  1. hrbust 2189 节点连接
  2. ACS712工作原理(20A为例)、设计及PCB布线
  3. 利用element日期组件,封装季度组件, 实现日、周、月、季度切换,默认禁用部分日期选择(附带:获取昨日、昨日所在周、昨日所在月、昨日所在季度等方法)
  4. 短信系统升级目前内容
  5. 方舟生存进化服务器物品叠加,《方舟生存》进化单机怎么修改物品叠加数量?...
  6. Cesium抛物线方程
  7. 在制作WORD小报时添加艺术横线或者艺术竖线
  8. Flutter开发:设置应用名称以及图标
  9. “ To B ” = “2B” ?!
  10. JavaScript 案例之 楼梯滚动特效(jQuery实现)