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修改table中Td的值(定义td的双击事件)
Jan 10 Javascript
js语法学习之判断一个对象是否为数组
May 13 Javascript
AngularJS基础 ng-cut 指令介绍及简单示例
Aug 01 Javascript
JavaScript中子对象访问父对象的方式详解
Sep 01 Javascript
JS中使用mailto实现将用户在网页中输入的内容传递到本地邮件客户端
Oct 08 Javascript
Javascript 动态改变imput type属性
Nov 01 Javascript
vue 2.0路由之路由嵌套示例详解
May 08 Javascript
js实现随机数字字母验证码
Jun 19 Javascript
zTree jQuery 树插件的使用(实例讲解)
Sep 25 jQuery
jQuery实现鼠标响应式透明度渐变动画效果示例
Feb 13 jQuery
Element Badge标记的使用方法
Jul 27 Javascript
用JavaScript实现贪吃蛇游戏
Oct 23 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
php部分常见问题总结
2008/03/27 PHP
Apache服务器无法使用的解决方法
2013/05/08 PHP
简单谈谈PHP中的include、include_once、require以及require_once语句
2016/04/23 PHP
PHPExcel简单读取excel文件示例
2016/05/26 PHP
PHP商品秒杀问题解决方案实例详解【mysql与redis】
2019/07/22 PHP
Laravel 自动转换长整型雪花 ID 为字符串的实现
2020/10/27 PHP
JavaScript QueryString解析类代码
2010/01/17 Javascript
Extjs4中Form的使用之本地hiddenfield
2013/11/26 Javascript
JS 弹出层 定位至屏幕居中示例
2014/05/21 Javascript
使用jquery获取url以及jquery获取url参数的实现方法
2016/05/25 Javascript
jQuery+css实现非常漂亮的水平导航菜单效果
2016/07/27 Javascript
JS基于for语句编写的九九乘法表示例
2018/01/04 Javascript
vue 点击按钮增加一行的方法
2018/09/07 Javascript
开发一个Parcel-vue脚手架工具(详细步骤)
2018/09/22 Javascript
详解ES6 系列之异步处理实战
2018/10/26 Javascript
node实现生成带参数的小程序二维码并保存到本地功能示例
2018/12/05 Javascript
Vue 中 a标签上href无法跳转的解决方式
2019/11/12 Javascript
Vue.js获取手机系统型号、版本、浏览器类型的示例代码
2020/05/10 Javascript
编写同时兼容Python2.x与Python3.x版本的代码的几个示例
2015/03/30 Python
浅谈python中的getattr函数 hasattr函数
2016/06/14 Python
浅谈python中的正则表达式(re模块)
2017/10/17 Python
Python多进程写入同一文件的方法
2019/01/14 Python
python 将对象设置为可迭代的两种实现方法
2019/01/21 Python
OpenCV-Python 摄像头实时检测人脸代码实例
2019/04/30 Python
python3.x+pyqt5实现主窗口状态栏里(嵌入)显示进度条功能
2019/07/04 Python
python shutil文件操作工具使用实例分析
2019/12/25 Python
Python3内置函数chr和ord实现进制转换
2020/06/05 Python
Django用内置方法实现简单搜索功能的方法
2020/12/18 Python
英国时尚女装购物网站:Missguided
2018/08/23 全球购物
初一体育教学反思
2014/01/29 职场文书
入党积极分子学习两会心得体会范文
2014/03/17 职场文书
会议室标语
2014/06/21 职场文书
个人简历自荐信
2014/06/26 职场文书
应聘护士求职信
2014/07/21 职场文书
小学五年级(说明文3篇)
2019/08/13 职场文书
Shell脚本一键安装Nginx服务自定义Nginx版本
2022/03/20 Servers