jQuery实现文件上传进度条特效


Posted in Javascript onAugust 12, 2015

上传进度条通常是由前面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实现文件上传进度条,能显示上传的百分比等信息,内容就到这里了,希望大家能够喜欢。

Javascript 相关文章推荐
javascript firefox不显示本地预览图片问题的解决方法
Nov 12 Javascript
ajax 文件上传应用简单实现
Mar 03 Javascript
javascript 匿名函数的理解(透彻版)
Jan 28 Javascript
jQuery Ajax提交表单查询获得数据实例代码
Sep 19 Javascript
JS中三目运算符和if else的区别分析与示例
Nov 21 Javascript
jQuery调取jSon数据并展示的方法
Jan 29 Javascript
js正则表达式最长匹配(贪婪匹配)和最短匹配(懒惰匹配)用法分析
Dec 27 Javascript
jQuery实现的动态文字变化输出效果示例【附演示与demo源码下载】
Mar 24 jQuery
Angular2仿照微信UI实现9张图片上传和预览的示例代码
Oct 19 Javascript
基于vue.js实现分页查询功能
Dec 29 Javascript
JS秒杀倒计时功能完整实例【使用jQuery3.1.1】
Sep 03 jQuery
微信小程序收藏功能的实现代码
Jun 19 Javascript
XML文件转化成NSData对象的方法
Aug 12 #Javascript
javascript实现点击单选按钮链接转向对应网址的方法
Aug 12 #Javascript
jQuery实现动态添加和删除一个div
Aug 12 #Javascript
JavaScript多线程详解
Aug 12 #Javascript
javascript实现在下拉列表中显示多级树形菜单的方法
Aug 12 #Javascript
JavaScript实现同一页面内两个表单互相传值的方法
Aug 12 #Javascript
JavaScript实现点击单选按钮改变输入框中文本域内容的方法
Aug 12 #Javascript
You might like
DC动画很好看?新作烂得令人发指,名叫《红色之子》
2020/04/09 欧美动漫
从零开始学YII2框架(一)通过Composer安装Yii2框架
2014/08/20 PHP
PHP获取音频文件的相关信息
2015/06/22 PHP
JavaScript 基于原型的对象(创建、调用)
2009/10/16 Javascript
jquery中的sortable排序之后的保存状态的解决方法
2010/01/28 Javascript
require.js深入了解 require.js特性介绍
2014/09/04 Javascript
js简单的点击返回顶部效果实现方法
2015/04/10 Javascript
jQuery平滑旋转幻灯片特效代码分享
2015/09/07 Javascript
Jquery Ajax Error 调试错误的技巧
2015/11/20 Javascript
微信小程序获取微信运动步数的实例代码
2017/07/20 Javascript
JS apply用法总结和使用场景实例分析
2020/03/14 Javascript
用Python制作在地图上模拟瘟疫扩散的Gif图
2015/03/31 Python
浅谈Python 字符串格式化输出(format/printf)
2016/07/21 Python
python使用turtle绘制分形树
2018/06/22 Python
Python3.5装饰器典型案例分析
2019/04/30 Python
django2笔记之路由path语法的实现
2019/07/17 Python
自定义实现 PyQt5 下拉复选框 ComboCheckBox的完整代码
2020/03/30 Python
HTML5 声明兼容IE的写法
2011/05/16 HTML / CSS
美国最便宜的旅游网站:CheapTickets
2017/07/09 全球购物
学生的自我鉴定范文
2013/10/24 职场文书
外贸业务员工作职责
2014/01/06 职场文书
大学毕业感言200字
2014/03/09 职场文书
应用数学专业求职信
2014/03/14 职场文书
父母对孩子说的话
2014/04/12 职场文书
无毒社区工作方案
2014/05/23 职场文书
2014年“四风”问题个人整改措施
2014/09/17 职场文书
居委会个人对照检查材料思想汇报
2014/09/29 职场文书
银行开户授权委托书格式
2014/10/10 职场文书
个人诉讼委托书范本
2014/10/17 职场文书
2014幼儿园家长工作总结
2014/11/10 职场文书
2015年暑期社会实践活动总结
2015/03/27 职场文书
2016八一建军节慰问信
2015/11/30 职场文书
广播稿:校园广播稿范文
2019/04/17 职场文书
导游词之湖北武当山
2019/09/23 职场文书
深入解读Java三大集合之map list set的用法
2021/11/11 Java/Android
Java字符串逆序方法详情
2022/03/21 Java/Android