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 相关文章推荐
MVVM模式中ViewModel和View、Model有什么区别?
Jun 19 Javascript
基于javascript代码检测访问网页的浏览器呈现引擎、平台、Windows操作系统、移动设备和游戏系统
Dec 03 Javascript
深入浅出ES6新特性之函数默认参数和箭头函数
Aug 01 Javascript
bootstrap如何让dropdown menu按钮式下拉框长度一致
Apr 10 Javascript
javascript 数据存储的常用函数总结
Jun 01 Javascript
vue组件间通信子与父详解(二)
Nov 07 Javascript
JS实现将链接生成二维码并转为图片的方法
Mar 17 Javascript
vue element项目引入icon图标的方法
Jun 06 Javascript
详解关于vue-area-linkage走过的坑
Jun 27 Javascript
对 Vue-Router 进行单元测试的方法
Nov 05 Javascript
微信公众号平台接口开发 菜单管理的实现
Aug 14 Javascript
JS实现碰撞检测效果
Mar 12 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
【COS正片】蕾姆睡衣cos,纯洁可爱被治愈了 cn名濑弥七
2020/03/02 日漫
PHP实现用户认证及管理完全源码
2007/03/11 PHP
php smarty的预保留变量总结
2008/12/04 PHP
PHP stristr() 函数(不区分大小写的字符串查找)
2010/06/03 PHP
php数据库备份还原类分享
2014/03/20 PHP
Linux下PHP加速器APC的安装与配置笔记
2014/10/24 PHP
thinkphp实现like模糊查询实例
2014/10/29 PHP
php计算数组相同值出现次数的代码(array_count_values)
2015/01/20 PHP
php实现二进制和文本相互转换的方法
2015/04/18 PHP
php curl优化下载微信头像的方法总结
2018/09/07 PHP
动态刷新 dorado树的js代码
2009/06/12 Javascript
javascript之querySelector和querySelectorAll使用说明
2011/10/09 Javascript
js实现身份证号码验证的简单实例
2014/02/19 Javascript
js加入收藏夹代码(兼容ie/ff/op)
2014/05/16 Javascript
node.js中使用q.js实现api的promise化
2014/09/17 Javascript
jQuery中:text选择器用法实例
2015/01/03 Javascript
jQuery实现渐变下拉菜单的简单方法
2015/03/11 Javascript
Js制作点击输入框时默认文字消失的效果
2015/09/05 Javascript
AngularJS教程 ng-style 指令简单示例
2016/08/03 Javascript
js鼠标按键事件和键盘按键事件用法实例汇总
2016/10/03 Javascript
js canvas实现适用于移动端的百分比仪表盘dashboard
2017/07/18 Javascript
JS中跳出循环的示例代码
2017/09/14 Javascript
JS中图片压缩的方法小结
2017/11/14 Javascript
JavaScript中常见内置函数用法示例
2018/05/14 Javascript
JavaScript简单实现关键字文本搜索高亮显示功能示例
2018/07/25 Javascript
Emberjs 通过 axios 下载文件的方法
2019/09/03 Javascript
vue从零实现一个消息通知组件的方法详解
2020/03/16 Javascript
[04:47]DOTA2-潍坊风行电子俱乐部探秘
2014/08/08 DOTA
[55:45]DOTA2上海特级锦标赛D组败者赛 Liquid VS COL第一局
2016/02/28 DOTA
使用go和python递归删除.ds store文件的方法
2014/01/22 Python
Python使用CMD模块更优雅的运行脚本
2015/05/11 Python
Pycharm设置去除显示的波浪线方法
2018/10/28 Python
Python + selenium + requests实现12306全自动抢票及验证码破解加自动点击功能
2018/11/23 Python
Python判断字符串是否为空和null方法实例
2020/04/26 Python
标记环介质访问控制协议
2016/03/27 面试题
2014年学校党建工作总结
2014/11/11 职场文书