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 相关文章推荐
imgAreaSelect 中文文档帮助说明
Oct 08 Javascript
js中判断数字\字母\中文的正则表达式 (实例)
Jun 29 Javascript
ajax请求get与post的区别总结
Nov 04 Javascript
浅析javascript中function 的 length 属性
May 27 Javascript
深入理解JavaScript编程中的原型概念
Jun 25 Javascript
你不需要jQuery(三) 新AJAX方法fetch()
Jun 14 Javascript
IntersectionObserver实现图片懒加载的示例
Sep 29 Javascript
浅析Vue 生命周期
Jun 21 Javascript
微信小程序实现笑脸评分功能
Nov 03 Javascript
JavaScript函数Call、Apply原理实例解析
Feb 17 Javascript
vue实现滑动解锁功能
Mar 03 Vue.js
vue选项卡切换的实现案例
Apr 11 Vue.js
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
linux下安装php的memcached客户端
2014/08/03 PHP
typecho插件编写教程(三):保存配置
2015/05/28 PHP
zend framework中使用memcache的方法
2016/03/04 PHP
JavaScript 三种创建对象的方法
2009/10/16 Javascript
JavaScript去掉数组中的重复元素
2011/01/13 Javascript
30个最好的jQuery 灯箱插件分享
2011/04/25 Javascript
jquery中获取select选中值的代码
2011/06/27 Javascript
javascript实现div的显示和隐藏的小例子
2013/06/25 Javascript
javascript实现检验的各种规则
2015/07/31 Javascript
JavaScript 实现的 zip 压缩和解压缩工具包Zip.js使用详解
2015/12/14 Javascript
jquery的checkbox,radio,select等方法小结
2016/08/30 Javascript
让编辑器支持word复制黏贴、截屏的js代码
2016/10/17 Javascript
Bootstrap基本样式学习笔记之按钮(4)
2016/12/07 Javascript
js实现通过开始结束控制的计时器
2019/02/25 Javascript
浅谈Javascript中的对象和继承
2019/04/19 Javascript
JavaScript实现多张图片放大镜效果示例【不限定图片尺寸,rem单位】
2019/05/14 Javascript
javascript单张多张图无缝滚动实例代码
2020/05/10 Javascript
基于vue和bootstrap实现简单留言板功能
2020/05/30 Javascript
分析Python编程时利用wxPython来支持多线程的方法
2015/04/07 Python
Python 十六进制整数与ASCii编码字符串相互转换方法
2018/07/09 Python
python mysql 字段与关键字冲突的解决方式
2020/03/02 Python
利用python绘制中国地图(含省界、河流等)
2020/09/21 Python
JackJones官方旗舰店:杰克琼斯男装
2018/03/27 全球购物
水务局局长岗位职责
2013/11/28 职场文书
销售文员岗位职责
2013/11/29 职场文书
公司薪酬管理制度
2014/01/31 职场文书
竞聘报告优秀范文
2014/11/06 职场文书
2014年纳税评估工作总结
2014/12/23 职场文书
2015学校师德师风工作总结
2015/04/22 职场文书
感谢师恩主题班会
2015/08/17 职场文书
环保建议书作文300字
2015/09/14 职场文书
MySQL 如何分析查询性能
2021/05/12 MySQL
java设计模式--三种工厂模式详解
2021/07/21 Java/Android
Ajax实现异步加载数据
2021/11/17 Javascript
排查MySQL生产环境索引没有效果
2022/04/11 MySQL
SQL Server Agent 服务无法启动
2022/04/20 SQL Server