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 相关文章推荐
表单提交时自动复制内容到剪贴板的js代码
Mar 16 Javascript
jquery中post方法用法实例
Oct 21 Javascript
js实现的简单radio背景颜色选择器代码
Aug 18 Javascript
javascript深拷贝(deepClone)详解
Aug 24 Javascript
利用BootStrap弹出二级对话框的简单实现方法
Sep 21 Javascript
Angular 4.X开发实践中的踩坑小结
Jul 04 Javascript
基于jQuery实现的设置文本区域的光标位置
Jun 15 jQuery
vue 点击按钮增加一行的方法
Sep 07 Javascript
vue使用axios上传文件(FormData)的方法
Apr 14 Javascript
Vue+Element-UI实现上传图片并压缩
Nov 26 Javascript
Vue.js 实现地址管理页面思路详解(地址添加、编辑、删除和设置默认地址)
Dec 11 Javascript
element el-table表格的二次封装实现(附表格高度自适应)
Jan 19 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/12/06 PHP
php计算给定时间之前的函数用法实例
2015/04/03 PHP
详解WordPress开发中wp_title()函数的用法
2016/01/07 PHP
PHP连接及操作PostgreSQL数据库的方法详解
2019/01/30 PHP
PHP下载大文件失败并限制下载速度的实例代码
2019/05/10 PHP
TP5框架安全机制实例分析
2020/04/05 PHP
PHP安全之register_globals的on和off的区别
2020/07/23 PHP
IE和firefox浏览器的event事件兼容性汇总
2009/12/06 Javascript
jQuery拖拽div实现思路
2014/02/19 Javascript
javascript中attribute和property的区别详解
2014/06/05 Javascript
JS实用的动画弹出层效果实例
2015/05/05 Javascript
jQuery通过写入cookie实现更换网页背景的方法
2016/04/15 Javascript
JS上传组件FileUpload自定义模板的使用方法
2016/05/10 Javascript
jQuery自定义图片缩放拖拽插件imageQ实现方法(附demo源码下载)
2016/05/27 Javascript
javascript中replace使用方法总结
2017/03/01 Javascript
JS抛物线动画实例制作
2018/02/24 Javascript
React-router4路由监听的实现
2018/08/07 Javascript
详解Node.js中path模块的resolve()和join()方法的区别
2018/10/29 Javascript
原生js实现表格翻页和跳转
2020/09/29 Javascript
Python实现模拟分割大文件及多线程处理的方法
2017/10/10 Python
Python各类图像库的图片读写方式总结(推荐)
2018/02/23 Python
python查看列的唯一值方法
2018/07/17 Python
wxPython的安装与使用教程
2018/08/31 Python
linux下python中文乱码解决方案详解
2019/08/28 Python
python实现银行管理系统
2019/10/25 Python
Django Channel实时推送与聊天的示例代码
2020/04/30 Python
HTML5之HTML元素扩展(上)—新增加的元素及使用概述
2013/01/31 HTML / CSS
贝斯特韦斯特酒店集团官网:Best Western
2019/01/03 全球购物
财务部副经理岗位职责
2014/03/14 职场文书
三万活动总结
2014/04/28 职场文书
副主任竞聘演讲稿
2014/08/18 职场文书
车辆委托书范本
2014/10/05 职场文书
批评与自我批评范文
2014/10/15 职场文书
农民工工资保障承诺书
2015/05/04 职场文书
python3 sqlite3限制条件查询的操作
2021/04/07 Python
html5调用摄像头截图功能
2022/01/18 Javascript