layui扩展上传组件模拟进度条的方法


Posted in Javascript onSeptember 23, 2019

如下所示:

<div id="uploadPatchForm" style="display:none" class="roundRect"> 
  <div id="uploadLoadingDiv">
    <div class="layui-progress" lay-showpercent="true" lay-filter="demo" >
	  <div class="layui-progress-bar layui-bg-red" lay-percent="0%"></div>
	</div>
  </div>
  <form class="layui-form" enctype="multipart/form-data">
	<div class="layui-form-item layui-upload">
	  <span id="uploadName" style="line-height: 3;"></span>
	  <button type="button" class="layui-btn layui-btn-normal" id="test8" style="float: right;">
        <i class="layui-icon">?</i>
      </button>
	</div>
	<div class="layui-form-item">
	  <div class="layui-input-block">
	    <input type="radio" name="upgradeType" value="30011001" title="手动升级">
	    <input type="radio" name="upgradeType" value="30011002" title="自动升级" checked>
	  </div>
	</div>
	<div class="layui-form-item">
	  <div class="layui-input-block">
		<a class="roundCornerDiv aLineGray" href="javascript:layer.closeAll();" rel="external nofollow" >
		  <span type="reset" class="ButtonText popupCloseBtn">取消</span>
		</a>
		<a class="roundCornerDiv aLineOrange">
	      <button class="ButtonText submitBtn" type="button" id="test9">立即提交</button>
	    </a> 
	  </div>
	</div>
  </form>
</div>
layui.use(['upload','element','layer'], function(){
	var upload = layui.upload,element = layui.element,layer = layui.layer;
	var timer;//定义一个计时器
	//选完文件后不自动上传
	upload.render({
	  elem: '#test8'
	  ,url: 'upload'
	  ,async: false
	  ,method: 'post'
	  ,data: {
	    upgradeType: function(){
		  return $("input[name='upgradeType']:checked").val();//额外传递的参数
	    }
	  }
	  ,auto: false
	  ,accept: 'file' //普通文件
	  ,exts: 'zip' //只允许上传压缩文件
	  ,field:'uploadFile'
	  ,bindAction: '#test9'
	  ,choose: function(obj){//这里的作用是截取上传文件名称并显示
		var uploadFileInput=$(".layui-upload-file").val();
		var uploadFileName=uploadFileInput.split("\\");
		$("#uploadName").text(uploadFileName[uploadFileName.length-1]);
	  }
	  ,before: function(obj){ //obj参数包含的信息,跟choose回调完全一致
		layer.load(); //上传loading
		var n = 0; 
		timer = setInterval(function(){//按照时间随机生成一个小于95的进度,具体数值可以自己调整
		  n = n + Math.random()*10|0; 
		  if(n>95){
			n = 95;
			clearInterval(timer);
		  }
		  element.progress('demo', n+'%');
		}, 50+Math.random()*100);
	  }
	  ,done: function(res){
		clearInterval(timer);
		element.progress('demo', '100%');//一成功就把进度条置为100%
		layer.closeAll(); layer.msg('上传成功');}  ,error: function(index, upload){element.progress('demo', '0%');layer.closeAll(); //关闭所有层layer.msg('上传更新包失败');  }});});

哎,好难调格式!

效果如下,截图工具反应迟钝看起来有点失真,实际测试是ok的:

layui扩展上传组件模拟进度条的方法

以上这篇 layui扩展上传组件模拟进度条的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery $.data()方法使用注意细节
Dec 31 Javascript
jquery 实现两级导航菜单附效果图
Mar 07 Javascript
捕获和分析JavaScript Error的方法
Mar 25 Javascript
textarea不能通过maxlength属性来限制字数的解决方法
Sep 01 Javascript
jQuery实现瀑布流布局
Dec 12 Javascript
基于jquery实现智能提示控件intellSeach.js
Mar 17 Javascript
JQuery的Pager分页器实现代码
May 03 Javascript
js 基础篇必看(点击事件轮播图的简单实现)
Aug 20 Javascript
Underscore之Array_动力节点Java学院整理
Jul 10 Javascript
前端图片懒加载(lazyload)的实现方法(提高用户体验)
Aug 21 Javascript
Three.js利用顶点绘制立方体的方法详解
Sep 27 Javascript
vue技术分享之你可能不知道的7个秘密
Apr 09 Javascript
layer扩展打开/关闭动画的方法
Sep 23 #Javascript
layui字体图标 loading图标静止不旋转的解决方法
Sep 23 #Javascript
解决layer.confirm快速点击会重复触发事件的问题
Sep 23 #Javascript
小程序最新获取用户昵称和头像的方法总结
Sep 23 #Javascript
中级前端工程师必须要掌握的27个JavaScript 技巧(干货总结)
Sep 23 #Javascript
layui内置模块layim发送图片添加加载动画的方法
Sep 23 #Javascript
微信头像地址失效踩坑记附带解决方案
Sep 23 #Javascript
You might like
我的论坛源代码(二)
2006/10/09 PHP
php5 图片验证码实现代码
2009/12/11 PHP
php类声明和php类使用方法示例分享
2014/03/29 PHP
php操作xml入门之xml标签的属性分析
2015/01/23 PHP
PHP实现的蚂蚁爬杆路径算法代码
2015/12/03 PHP
PHP 断点续传实例详解
2017/11/11 PHP
PHP-FPM的配置与优化讲解
2019/03/15 PHP
php用户名的密码加密更安全的方法
2019/06/21 PHP
TFDN图片播放器 不错自动播放
2006/10/03 Javascript
innerhtml用法 innertext用法 以及innerHTML与innertext的区别
2009/10/26 Javascript
用JQuery实现表格隔行变色和突出显示当前行的代码
2012/02/10 Javascript
Jquery中LigerUi的弹出编辑框(实现方法)
2013/07/09 Javascript
Nodejs实现的一个简单udp广播服务器、客户端
2014/09/25 NodeJs
基于jquery编写的放大镜插件
2016/03/23 Javascript
vue单页应用加百度统计代码(亲测有效)
2018/01/31 Javascript
React Form组件的实现封装杂谈
2018/05/07 Javascript
vue中v-show和v-if的异同及v-show用法
2019/06/06 Javascript
JavaScript ES6 Class类实现原理详解
2020/05/08 Javascript
Vue-router中hash模式与history模式的区别详解
2020/12/15 Vue.js
js面向对象封装级联下拉菜单列表的实现步骤
2021/02/08 Javascript
[01:32]DOTA2次级联赛——首支职业女子战队选拔赛全记录
2014/10/23 DOTA
Python正则获取、过滤或者替换HTML标签的方法
2016/01/28 Python
深入解析Python的Tornado框架中内置的模板引擎
2016/07/11 Python
python实现的二叉树定义与遍历算法实例
2017/06/30 Python
python实现整数的二进制循环移位
2019/03/08 Python
浅析Python语言自带的数据结构有哪些
2019/08/27 Python
信号生成及DFT的python实现方式
2020/02/25 Python
django项目中新增app的2种实现方法
2020/04/01 Python
如何在scrapy中捕获并处理各种异常
2020/09/28 Python
中国领先的专业家电网购平台:国美在线
2016/12/25 全球购物
俄罗斯卫浴采暖及维修用品超级市场:Dkrussia
2020/05/12 全球购物
日语专业个人的求职信
2013/12/03 职场文书
平安工地汇报材料
2014/08/19 职场文书
2019安全宣传标语大全
2019/08/14 职场文书
简单总结SpringMVC拦截器的使用方法
2021/06/28 Java/Android
python代码实现扫码关注公众号登录的实战
2021/11/01 Python