loading 进度

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" />
    <title>loading</title>
    <script>
        (function(win) {

            if(!window.imgCache){
                window.imgCache={};
                //window.setTimeout(function(){ console.log(window.imgCache) },10000);
            }
            function loader(assetParentDom){
                this.debug=false;
                this.assetBox=document.querySelector(assetParentDom);
                this.imgList=document.querySelectorAll(assetParentDom+‘ img‘);
                this.cssList=document.querySelectorAll(assetParentDom+‘ link‘);
                this.jsList=document.querySelectorAll(assetParentDom+‘ script‘);
                this.loadRecord=[0,0,0];
                this.loaded=0;
                this.length=this.imgList.length+this.cssList.length+this.jsList.length;
                this.onLoading=null;
            }
            loader.prototype.load=function(){
                this.debug && console.log(‘loader资源总数:‘+this.length+‘\n img:‘+this.imgList.length+‘, css:‘+this.cssList.length+‘, js:‘+this.jsList.length);
                if(this.length==0){ return false;}
                if(this.cssList.length>0){
                    this.loadCss();
                }else if(this.imgList.length>0){
                    this.loadImg();
                }else if(this.jsList.length>0){
                    this.loadJs();
                }
            }
            loader.prototype.loadImg=function(){
                var _this=this, img, url, noCache;
                url=_this.imgList.item(this.loadRecord[0]).getAttribute(‘assetUrl‘);
                noCache=_this.imgList.item(this.loadRecord[0]).getAttribute(‘noCache‘);
                if(url){
                    img=new Image();
                    img.onload=function(e){
                        _this._calculate(0, e.target.src);
                        window.imgCache[e.target.src.substring(e.target.src.lastIndexOf(‘/‘)+1, e.target.src.indexOf(‘?‘)>0?e.target.src.indexOf(‘?‘):999)]=e.target;
                    }
                    img.onerror=function(e){ _this._calculate(0, ‘错误---‘+e.target.outerHTML);}
                    img.src= noCache?url+‘?r=‘+Math.random():url;

                }else{
                    _this._calculate(0, ‘错误---‘+_this.imgList.item(i).outerHTML);
                }
            }
            loader.prototype.loadCss=function(){
                var _this=this;
                var url=_this.cssList.item(_this.loadRecord[1]).getAttribute(‘assetUrl‘);
                var noCache=_this.cssList.item(_this.loadRecord[1]).getAttribute(‘noCache‘);
                if(url && url.indexOf(‘.css‘)>0){
                    var mylink=document.createElement(‘link‘);
                    mylink.type=‘text/css‘;
                    mylink.rel=‘stylesheet‘;
                    mylink.href=noCache?url+‘?r=‘+Math.random():url;
                    document.head.appendChild(mylink);
                    setTimeout(function(){
                        _this._calculate(1, mylink.href);
                    },50)
                }else{
                    _this._calculate(1, ‘错误---‘+_this.cssList.item(_this.loadRecord[1]).outerHTML);
                }
            }
            loader.prototype.loadJs=function(){
                var _this=this;
                var url=_this.jsList.item(_this.loadRecord[2]).getAttribute(‘assetUrl‘);
                var noCache=_this.jsList.item(_this.loadRecord[2]).getAttribute(‘noCache‘);
                if(url && url.indexOf(‘.js‘)>0){
                    var myjs=document.createElement(‘script‘);
                    myjs.type=‘text/javascript‘;
                    myjs.src=noCache?url+‘?r=‘+Math.random():url;
                    myjs.onload=function(){ _this._calculate(2, myjs.src); }
                    myjs.onerror=function(){ _this._calculate(2, ‘错误---‘+_this.jsList.item(_this.loadRecord[2]).outerHTML); }
                    document.head.appendChild(myjs);
                }else{
                    _this._calculate(2, ‘错误---‘+_this.jsList.item(_this.loadRecord[2]).outerHTML);
                }
            }
            loader.prototype._calculate=function(type,url){
                if(type===undefined){ return;}
                this.loadRecord[type]+=1;
                this.loaded+=1;
                this.debug && console.log(‘loader进度:[‘+this.loaded+‘/‘+this.length+‘], 载入:‘+url);
                var _percent=this.loaded/this.length;
                if(_percent>1)_percent=1;
                typeof(this.onLoading)==‘function‘ && this.onLoading(_percent);
                if(this.loadRecord[1]<this.cssList.length){
                    this.loadCss();
                }else if(this.loadRecord[0]<this.imgList.length){
                    this.loadImg();
                }else if(this.loadRecord[2]<this.jsList.length){
                    this.loadJs();
                }
            }

            win.loader=loader;

        })(window);
    </script>
    <script type="text/javascript">
        window.addEventListener(‘load‘, function(){
            var myload = new loader(‘.asset‘);
            var loadTxt = document.querySelector(‘.asset ._load var‘);
            myload.onLoading=function(p){
                loadTxt.innerText = Math.floor(p*100)+‘%‘;
                if(p<1){ return; }
                //setTimeout(function(){ appBegin(); }, 1000);
            };
            setTimeout(function(){ myload.load(); }, 1000);
        }, false);
    </script>
</head>

<body>

<!--资源loading-->
<div class="asset">
    <div class="_list">
        <link assetUrl="css/main.css" />
        <script assetUrl="js/jquery-2.1.1.min.js" ></script>
        <script assetUrl="js/jquery-transit.min.js" ></script>
        <script assetUrl="js/main.js"></script>
        <img assetUrl="img/loading.png" />
        <img assetUrl="img/dh1.png" />
        <img assetUrl="img/dh1b.jpg" />
        <img assetUrl="img/dh1c.jpg" />
        <img assetUrl="img/dh1d.png" />
        <img assetUrl="img/dh2.jpg" />
        <img assetUrl="img/dh3.jpg" />
        <img assetUrl="img/dh3b.png" />
        <img assetUrl="img/dh3c.png" />
        <img assetUrl="img/dh4.png" />
        <img assetUrl="img/dh4b.png" />
        <img assetUrl="img/dh5.jpg" />
        <img assetUrl="img/dh5b.png" />
        <img assetUrl="img/dh6.jpg" />
        <img assetUrl="img/dh7.png" />
        <img assetUrl="img/dh7b.png" />
        <img assetUrl="img/dh8.jpg" />
        <img assetUrl="img/dh8b.png" />
        <img assetUrl="img/ico.png" />
        <img assetUrl="img/s2-1.gif" />
        <img assetUrl="img/s2-2.gif" />
        <img assetUrl="img/s2-3.png" />
        <img assetUrl="img/s2-input.png" />
        <img assetUrl="img/s2-packet.png" />
        <img assetUrl="img/s3-head.jpg" />
        <img assetUrl="img/s4-1.jpg" />
        <img assetUrl="img/s4-2.png" />
        <img assetUrl="img/s4-3.png" />
        <img assetUrl="img/s4-4.png" />
        <img assetUrl="img/user.jpg" />
        <img assetUrl="img/user_prev.jpg" />
        <img assetUrl="img/user1.jpg" />
        <img assetUrl="img/user2.jpg" />
        <img assetUrl="img/user3.jpg" />
        <img assetUrl="img/hand.png" />
    </div>
    <div class="_load">
        <var>0%</var>
    </div>
</div>
</body>
</html>

  

时间: 2024-11-04 07:38:52

loading 进度的相关文章

Android loading进度条使用简单总结

在这里,总结一下loading进度条的使用简单总结一下. 一.说起进度条,必须说说条形进度条,经常都会使用到嘛,特别是下载文件进度等等,还有像腾讯QQ安装进度条一样,有个进度总给人良好的用户体验. 先来找图看看,做这个图完成不用图片就可以做到了. 看下xml布局文件,其实就是直接用xml写的在加两个属性设置一下就好了,一个style,另一个是background. <ProgressBar android:id="@+id/pb_progressbar" style="

小tip: 使用SVG寥寥数行实现圆环loading进度效果

二.正文 设计师设计了一个图片上传圆环loading进度效果.如下截图: 首先,CSS3是可以实现的,以前写过一篇转大饼的文章:"CSS3实现鸡蛋饼饼状图loading等待转转转".原理跟这个一模一样,两个半区的矩形,然后不同时机巧妙显隐实现. 但是呢,CSS3实现不太好理解,进度控制也不容易,最好直接数值变一变,进度效果就出来. 有没有其他方法呢? 哈,当然有,可以使用同样IE9+支持的SVG. 我们只需要一个实线背景圆,一个虚线变化圆两个圆就可以了. 百闻不如一见,您可以狠狠地点击

页面头部带loading进度指示的jQuery滚动页面特效

这是一款非常实用且效果很酷的jQuery页面头部带loading进度指示的滚动页面特效.该特效在页面滚动的时候页面头部有Loading进度条指示当前页面滚动的位置,这可以让用户知道当前阅读的地方距离页面底部还有多少距离. 该页面头部loading特效共有4中效果:基本的loading进度条效果,整个头部作为loading进度条的效果,网站logo作为loading进度条的效果和loading和网站logo进度条同时操作的效果. 在线演示:http://www.htmleaf.com/Demo/2

模态框的理解 ,jQ: loading,进度条, 省级联动 ,富文本编辑器 表单验证 插件

模态框: 打开一个弹框 不关闭它就不能做框外的操作 必须关闭或弹出另外的弹框 加载延迟loading + 进度条只要有请求 就处理一下监控ajax 全局事件jquery: 开始     $('#box').ajaxStart() 多个ajax共享一个Start 发送 .ajaxSend() 成功 .ajaxSuccess() 完成 . ajaxComplete() 完成后有错误 .ajaxError() 停止 .ajaxStop()多个ajax共享一个Stop Nprogress:进度条引入 c

JS Loading 进度条实现思路

有时候访问网站,在加载的过程中经常会出现显示加载进度的进度条,或者类似的一个旋转的菊花图.如果留心的话不难发现,那些进度条出现的加载进度数字几乎每次都是那几个数字,30% -> 50% -> 80%,这样.这样会极大提高用户的体验,既能告知用户加载进度,让等待过程不再那么无聊,又能防止用户以为网站有问题而直接离开站点.但是这个进度条是怎么实现的呢? 一般在网络情况不好的情况下,加载的首页又比较大的时候就可以使用进度条或者一些有意思的动画.一般的实现方式刚开始时给整个页面加个蒙板层,将加载过程覆

Unity3d中制作异步Loading进度条所遇到的问题

背景 通常游戏的主场景包括的资源较多,这会导致载入场景的时间较长.为了避免这个问题,能够首先载入Loading场景.然后再通过Loading场景来载入主场景. 由于Loading场景包括的资源较少,所以载入速度快.在载入主场景的时候通常会在Loading界面中显示一个进度条来告知玩家当前载入的进度. 在Unity中能够通过调用Application.LoadLevelAsync函数来异步载入游戏场景,通过查询AsyncOperation.progress的值来得到场景载入的进度. 尝试--遇到问

异步加载场景和Loading进度条制作

在切换场景的时候,直接 用 application.LoadLevel()这个方法,如果加载的场景资源过多的话,会卡死一段时间的. 所以,用一个过渡的场景的话,体验会好一点. 那么就先开始做一个过渡的场景(名字叫做:Loading)吧..(比如像下面酱紫,百度的一张图片) 要切换场景的时候,Application.LoadLevel("Loading"):就先切换到这个Loading场景,Loading场景资源少,就一个背景图和一个slider,所以,直接同步加载过来也很快的 然后,在

异步加载场景及Loading进度条制作

实现功能:点击开始游戏以后UI界面进入Loading界面,Loading结束以后自动进入游戏场景. 在这之前先在Build Settings中Add要使用的场景 在场景A中添加StartGame方法: Application.LoadLevel(1)://同步加载Loading界面(因为Loading界面资源较少速度快所以此处用同步方法) 在Loading场景中加入进度条图片:分为上下两层,上层负责显示进度 将上层的进度条Image组件中的Image Ttpe改为Filled 接下来再Loadi

JavaScript之Loading进度条

<title>网页loading</title> <script language="javascript"> function setSB(v, el) { var ie5 = (document.all && document.getElementsByTagName); if (ie5 || document.readyState == "complete") { filterEl = el.children