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 相关文章推荐
suggestion开发小结以及对键盘事件的总结(针对中文输入法状态)
Dec 20 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(一)让静态人物动起来
Jan 23 Javascript
使用js实现数据格式化
Dec 03 Javascript
jquery实现隐藏在左侧的弹性弹出菜单效果
Sep 18 Javascript
Augularjs-起步详解
Jul 08 Javascript
jquery之别踩白块游戏的简单实现
Jul 25 Javascript
jquery easyui如何实现格式化列
Jul 30 jQuery
React Native 搭建开发环境的方法步骤
Oct 30 Javascript
使用 Vue 绑定单个或多个 Class 名的实例代码
Jan 08 Javascript
基于Node.js实现压缩和解压缩的方法
Feb 13 Javascript
js实现购物车商品数量加减
Sep 21 Javascript
解决vue项目运行npm run serve报错的问题
Oct 26 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
用 PHP5 轻松解析 XML
2006/12/04 PHP
PHP导入Excel到MySQL的方法
2011/04/23 PHP
ThinkPHP3.1新特性之字段合法性检测详解
2014/06/19 PHP
weiphp微信公众平台授权设置
2016/01/04 PHP
php 流程控制switch的简单实例
2016/06/07 PHP
PHP下载文件函数与用法示例
2019/09/27 PHP
基于jquery1.4.2的仿flash超炫焦点图播放效果
2010/04/20 Javascript
Extjs改变树节点的勾选状态点击按钮将复选框去掉
2013/11/14 Javascript
javascript校验价格合法性实例(必须输入2位小数)
2014/05/05 Javascript
jquery $.trim()方法使用介绍
2014/05/21 Javascript
JavaScript让网页出现渐隐渐显背景颜色的方法
2015/04/21 Javascript
requireJS使用指南
2016/04/27 Javascript
JQuery的常用选择器、过滤器、方法全面介绍
2016/05/25 Javascript
基于jQuery和hwSlider实现内容左右滑动切换效果附源码下载(一)
2016/06/22 Javascript
Angular2库初探
2017/03/01 Javascript
原生JS实现左右箭头选择日期实例代码
2017/03/14 Javascript
Vue触发隐藏input file的方法实例详解
2019/08/14 Javascript
Python数组条件过滤filter函数使用示例
2014/07/22 Python
Python利用多进程将大量数据放入有限内存的教程
2015/04/01 Python
解决python使用open打开文件中文乱码的问题
2017/12/29 Python
python验证码识别教程之利用投影法、连通域法分割图片
2018/06/04 Python
pyqt5 实现在别的窗口弹出进度条
2019/06/18 Python
python Django里CSRF 对应策略详解
2019/08/05 Python
python实现简易淘宝购物
2019/11/22 Python
Python使用turtle库绘制小猪佩奇(实例代码)
2020/01/16 Python
Python实现将元组中的元素作为参数传入函数的操作
2020/06/05 Python
OpenCV Python实现图像指定区域裁剪
2021/03/12 Python
Html5+CSS3+EL表达式问题小结
2020/12/19 HTML / CSS
NET程序员上机面试题
2015/05/23 面试题
求职信格式范本
2013/11/15 职场文书
信息总监管理职责范本
2014/03/08 职场文书
个人合作协议书范本
2014/04/18 职场文书
歌唱比赛策划方案
2014/06/06 职场文书
三好学生主要事迹怎么写
2015/11/03 职场文书
python的变量和简单数字类型详解
2021/09/15 Python
MySQ InnoDB和MyISAM存储引擎介绍
2022/04/26 MySQL