45fan.com - 路饭网

搜索: 您的位置主页 > 电脑频道 > 编程代码 > 阅读资讯:jQuery文件上传进度条的实例分享

jQuery文件上传进度条的实例分享

2015-09-16 14:00:45 来源:www.45fan.com 【

jQuery文件上传进度条的实例分享

上传进度条通常是由前面jquery加后端了脚本器脚本来实现了,今天我们介绍的是一款基本php+jQuery实现文件上传进度条效果的例子,具体细节如下。

最近呢,一个项目做一个进度条的效果出来,这个之前还真没做过。刚好这周没什么东西了,就拿这个来充一下数吧。

文件上传,得先准备一个“按钮”:

jQuery文件上传进度条的实例分享

这个看上去还是不错的吧,实现也是很简单的:

<span class="upload-span">开始上传文件</span>
<button>太丑了,就用span来做了,可控性强。添加点css:
.upload-span{
 display: inline-block;
 width: 120px;
 height: 40px;
 color: #FFFFFF;
 text-align: center;
 line-height: 40px;
 background-color: blue;
 border: 2px solid blue;
 border-radius:5px;
 cursor: pointer;
 letter-spacing: 2px;
}

当点击就会触发上传效果,之后添加事件。
逼真一点,得再加一个遮罩和一个显示进度条的控件,点击span后,效果大概是这样子的:

jQuery文件上传进度条的实例分享

 <div class="upload-mask"></div>
 <div class="upload-component">
  <div class="upload-close">
   <span class="upload-close-span">关闭</span>
  </div>
  <div class="upload-content">
   <div class="progress">
    <span class="upload-text"></span>
    <span class="uploaded"></span>
   </div>
   <div class="confirm-cancel">
    <span class="confirm">确认</span>
    <span class="cancel">取消</span>
   </div>
  </div>
 </div>

加点css上去:

.upload-mask{
 position: absolute;
 top: 0;
 left: 0;
 z-index: 9;
 width: 100%;
 height: 100%;
 background-color: rgba(84,84,84,0.3);
 display: none;
}
.upload-component{
 position: absolute;
 z-index: 99;
 top: 50%;
 left: 50%;
 margin-left: -120px;
 margin-top: -60px;
 width: 240px;
 height: 120px;
 background-color: #FFFFFF;
 display:none;
}
.upload-close{
 position: relative;
 height: 30px;
 background-color: rgb(234,234,234);
}
.upload-close span{
 position: absolute;
 right: 15px;
 line-height: 30px;
 cursor: pointer;
}
.upload-content,.confirm-cancel{
 margin-top: 15px;
}
.progress{
 position:relative;
 width:90%;
 height:22px;
 margin-left: 4.88888%;
 text-align: center;
 line-height: 22px;
 /*background-color: blue;*/
 border:1px solid #ccc;
}
.upload-text{
 position:absolute;
 z-index: 99999;
 color:red;
}
.uploaded{
 position:absolute;
 left:0;
 z-index: 9999;
 width:0%;
 height:100%;
 background-color: blue;
 color:#FFFFFF;
}
.confirm-cancel span{
 display:inline-block;
 width:60px;
 height:30px;
 line-height: 30px;
 text-align: center;
 /*cursor:pointer;*/
 background-color:#ccc;
 cursor:wait;
}
.confirm{
 /*background-color: rgb(111,197,293);*/
 margin-left:40%;
}
.cancel{
 /*background-color: rgb(175,194,211);*/
 margin-left: 10px;
}

为了模拟进度的显示,在这里用了两个span:

<div class="progress">
 <span class="upload-text"></span>
 <span class="uploaded"></span>
</div>

上面一个是用来显示百分比的,下面一个用来填色的:

.upload-text{
 position:absolute;
 z-index: 99999;
 color:red;
}
.uploaded{
 position:absolute;
 left:0;
 z-index: 9999;
 width:0%;
 height:100%;
 background-color: blue;
 color:#FFFFFF;
}

为了逼真,给填色的span设置背景色,其宽度就是进度的百分比,最后就用js来模拟进度的变化了:

 // 模拟进度
 function progressBar() {
  var max = 100;
  var init = 0;
  var uploaded;
  var test = setInterval(function() {
   init += 10;
   uploaded = parseInt((init / max * 100)) + '%';
   $uploadTextSpan.text(uploaded).next().css({
 width:uploaded
 });
 if (init === 100) {
 clearInterval(test);
 $uploadTextSpan.text('上传完成');
 $('.confirm-cancel span').css({
  cursor:'pointer'
 });
 $('.confirm').css({
  backgroundColor:'rgb(111,197,293)'
 });
 $('.cancel').css({
  backgroundColor:'rgb(175,194,211)'
 })
 $closeConfirmCancel.on('click',closeConfirmCancel);
 } 
 else { 
 $closeConfirmCancel.off('click',closeConfirmCancel);
 $('.upload-close-span').on('click',function(){
  clearInterval(test);
  closeConfirmCancel();
 });
 $uploadMask.on('click',function() {
     clearInterval(test);
     closeConfirmCancel();
    })
   }
  },1000);
 }

JQuery实现文件上传进度条,能显示上传的百分比等信息,内容就到这里了,希望大家能够喜欢。


本文地址:http://www.45fan.com/bcdm/21265.html
Tags: 实现 文件 jquery
编辑:路饭网
推广内容
推荐阅读
热门推荐
推荐文章
关于我们 | 联系我们 | 友情链接 | 网站地图 | Sitemap | App | 返回顶部