html js 资源加载前的loading 实例 禁止loading时滑动页面 pc 移动兼容

试例:

6f79b1e7-f7b2-437b-9add-e817ab2e3cf8.gif

loading的js引入文件必须放内

html



    
        
        
        
        
        
        
        
        loading
        
    
    
    
        
    //这里的图尽量使用大图 方便测试效果 我这里的图一张就有接近2M
  • 哈哈哈哈
  • 哈哈哈哈
  • 哈哈哈哈
  • 哈哈哈哈
  • 哈哈哈哈
  • 哈哈哈哈
  • 哈哈哈哈
  • 哈哈哈哈
  • 哈哈哈哈
  • 哈哈哈哈
  • 哈哈哈哈
  • 哈哈哈哈

base_loading.js

//获取浏览器页面可见高度和宽度
var _PageHeight = document.documentElement.clientHeight;

//计算loading框距离顶部和左部的距离(loading框的宽度为215px,高度为61px)
var _LoadingTop = _PageHeight > 61 ? (_PageHeight - 61) / 2 : 0;
var html=document.documentElement
html.setAttribute('style','overflowY:hidden;overflow:hidden;height:' + _PageHeight + 'px;')
//在页面未加载完毕之前显示的loading Html自定义内容
var _LoadingHtml = '
努力加载中...
'; //呈现loading效果 document.write(_LoadingHtml); //window.onload = function () { // var loadingMask = document.getElementById('loadingDiv'); // loadingMask.parentNode.removeChild(loadingMask); //}; //监听加载状态改变 document.onreadystatechange = completeLoading; //加载状态为complete时移除loading效果 function completeLoading() { if(document.readyState == "interactive" ){//当页面状态为interactive 才能获取到body元素 //解决移动端还可以下滑页面 出现滚动条 document.body.setAttribute('style','overflowY:hidden;overflow:hidden;height:' + _PageHeight + 'px;') } if (document.readyState == "complete") { var loadingMask = document.getElementById('loadingDiv'); document.body.setAttribute('style','overflowY:unset;overflow:unset;height:unset;') html.setAttribute('style','overflowY:unset;overflow:unset;height:unset;') loadingMask.parentNode.removeChild(loadingMask); } }

当页面资源加载完毕 loading消失 每次测试前请清理浏览器缓存 否侧看不到loading效果 因为资源缓存在浏览器里面 我是用的safari无痕浏览模式

loading尽量不要使用img图片 我用的ico图标配合css3动画实现的旋转 ico图标加载速度可以说跟文字没区别 体积小 如果使用gif图会出现加载中的文字出来了 图还没出来 影响效果

你可能感兴趣的:(html js 资源加载前的loading 实例 禁止loading时滑动页面 pc 移动兼容)