jQuery实现简单的文件上传进度条效果


Posted in Javascript onMarch 26, 2020

本文实例讲述了jQuery实现文件上传进度条效果的代码。分享给大家供大家参考。具体如下:

运行效果截图如下:

jQuery实现简单的文件上传进度条效果

具体代码如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>upload</title>
<link rel="stylesheet" type="text/css" href="upload/upload.css">
<script type="text/javascript" src="upload/jquery.js"></script>
</head>
<body>
<span class="upload-span">开始上传文件</span>
<div class="upload-mask"></div>
<div class="upload-component">
<div class="upload-close">
<span class="upload-close-span">关闭</span>
</div>
<div class="upload-content">
<div class="progress">
<span class="upload-text"></span>
<span class="uploaded"></span>
</div>
<div class="confirm-cancel">
<span class="confirm">确认</span>
<span class="cancel">取消</span>
</div>
</div>
</div>
<script type="text/javascript" src="upload/upload.js"></script>
</body>
</html>

CSS代码:

.upload-span{
display:inline-block;
width:120px;
height:40px;
color:#FFFFFF;
text-align: center;
line-height:40px;
background-color: blue;
border:2px solid blue;
border-radius:5px;
cursor: pointer;
letter-spacing:2px;
}
.upload-mask{
position: absolute;
top:0;
left:0;
z-index:9;
width:100%;
height:100%;
background-color: rgba(84,84,84,0.3);
display: none;
}
.upload-component{
position: absolute;
z-index:99;
top:50%;
left:50%;
margin-left:-120px;
margin-top:-60px;
width:240px;
height:120px;
background-color:#FFFFFF;
display:none;
}
.upload-close{
position: relative;
height:30px;
background-color: rgb(234,234,234);
}
.upload-close span{
position: absolute;
right:15px;
line-height:30px;
cursor: pointer;
}
.upload-content,.confirm-cancel{
margin-top:15px;
}
.progress{
position:relative;
width:90%;
height:22px;
margin-left:4.88888%;
text-align: center;
line-height:22px;
border:1px solid #ccc;
}
.upload-text{
position:absolute;
z-index:99999;
color:red;
}
.uploaded{
position:absolute;
left:0;
z-index:9999;
width:0%;
height:100%;
background-color: blue;
color:#FFFFFF;
}
.confirm-cancel span{
display:inline-block;
width:60px;
height:30px;
line-height:30px;
text-align: center;
background-color:#ccc;
cursor:wait;
}
.confirm{
margin-left:40%;
}
.cancel{
margin-left:10px;
}

jQuery代码:

$(function (){
var $uploadSpan = $('.upload-span');
var $uploadMask = $('.upload-mask');
var $uploadContent = $('.upload-component');
var $closeConfirmCancel = $('.upload-close-span,.confirm,.cancel');
var $uploadTextSpan = $('.upload-text');
function showMask(){
$(".upload-mask,.upload-component").css({display:'block'});
progressBar();
$uploadSpan.off('click',showMask);
}
function hiddenMask(){
$uploadMask.css({display:'none'});
$uploadSpan.on('click',showMask);
}
function closeConfirmCancel(){
$uploadContent.css({display:'none'});
$uploadTextSpan.text('').next().css({width:0});
hiddenMask();
}
// 模拟进度
function progressBar(){
var max =100;
var init =0;
var uploaded;
var test = setInterval(function(){
init +=5;
uploaded = parseInt(init / max *100)+'%';
$uploadTextSpan.text(uploaded).next().css({width:uploaded});
if(init ===100){
clearInterval(test);
$uploadTextSpan.text('上传完成');
$('.confirm-cancel span').css({cursor:'pointer'});
$('.confirm').css({backgroundColor:'rgb(111,197,293)'});
$('.cancel').css({backgroundColor:'rgb(175,194,211)'})
$closeConfirmCancel.on('click',closeConfirmCancel);
}
else{
$closeConfirmCancel.off('click',closeConfirmCancel);
$('.upload-close-span').on('click',function(){
clearInterval(test);
closeConfirmCancel();
});
}
},1000);
}
$uploadSpan.on('click',showMask);
})

JQuery实现文件上传进度条,能显示上传的百分比等信息,内容就到这里了,希望大家能够喜欢。

Javascript 相关文章推荐
jQuery使用数组编写图片无缝向左滚动
Dec 11 Javascript
jquery实现弹出窗口效果的实例代码
Nov 28 Javascript
Javascript 按位取反运算符 (~)
Feb 04 Javascript
js加载读取内容及显示与隐藏div示例
Feb 13 Javascript
深入理解JavaScript系列(37):设计模式之享元模式详解
Mar 04 Javascript
jQuery自定义数值抽奖活动代码
Jun 11 Javascript
jQuery解析XML 详解及方法总结
Sep 28 Javascript
基于jQuery实现咖啡订单管理简单应用
Feb 10 Javascript
老生常谈js-react组件生命周期
May 02 Javascript
Vue的click事件防抖和节流处理详解
Nov 13 Javascript
Vue.extend 编程式插入组件的实现
Nov 18 Javascript
详解为什么Vue中不要用index作为key(diff算法)
Apr 04 Javascript
jquery实现手风琴效果
Nov 20 #Javascript
不想让浏览器运行javascript脚本的方法
Nov 20 #Javascript
jquery背景跟随鼠标滑动导航
Nov 20 #Javascript
JavaScript获取浏览器信息的方法
Nov 20 #Javascript
JavaScript性能优化之小知识总结
Nov 20 #Javascript
Bootstrap每天必学之基础排版
Nov 20 #Javascript
详解JavaScript的回调函数
Nov 20 #Javascript
You might like
php escape URL编码
2008/12/10 PHP
php顺序查找和二分查找示例
2014/03/27 PHP
PHP中PDO连接数据库中各种DNS设置方法小结
2016/05/13 PHP
Laravel第三方包报class not found的解决方法
2019/10/13 PHP
jquery下组织javascript代码(js函数化)
2010/08/25 Javascript
Bookmarklet实现启动jQuery(模仿 云输入法)
2010/09/15 Javascript
拥抱模块化的JavaScript
2012/03/07 Javascript
鼠标拖拽移动子窗体的JS实现
2014/02/25 Javascript
jQuery实现返回顶部功能适合不支持js的浏览器
2014/08/19 Javascript
js实现滑动触屏事件监听的方法
2015/05/05 Javascript
jquery利用拖拽方式在图片上添加热链接
2015/11/24 Javascript
js实现的下拉框二级联动效果
2016/04/30 Javascript
浅谈JavaScript 覆盖原型以及更改原型
2016/08/31 Javascript
AngularJS 所有版本下载地址
2016/09/14 Javascript
用js实现简单算法的实例代码
2016/09/24 Javascript
Angular学习笔记之angular的$filter服务浅析
2016/11/12 Javascript
基于Javascript实现的不重复ID的生成器
2016/12/25 Javascript
nodejs使用redis作为缓存介质实现的封装缓存类示例
2018/02/07 NodeJs
默认浏览器设置及vue自动打开页面的方法
2018/09/21 Javascript
JS获取动态添加元素的方法详解
2019/07/31 Javascript
Vue.directive 实现元素scroll逻辑复用
2019/11/29 Javascript
微信小程序利用for循环解决内容变更问题
2020/03/05 Javascript
js定时器出现第一次延迟的原因及解决方法
2021/01/04 Javascript
深入理解python try异常处理机制
2016/06/01 Python
分享一下如何编写高效且优雅的 Python 代码
2017/09/07 Python
python实现12306抢票及自动邮件发送提醒付款功能
2018/03/08 Python
django自定义非主键自增字段类型详解(auto increment field)
2020/03/30 Python
python自动化测试三部曲之request+django实现接口测试
2020/10/07 Python
python字典按照value排序方法
2020/12/28 Python
澳大利亚最大的女装零售商:Millers
2017/09/10 全球购物
Moda Operandi官网:美国奢侈品电商,海淘秀场T台同款
2020/05/26 全球购物
大学毕业生的自我鉴定
2013/11/30 职场文书
保密普查工作实施方案
2014/02/25 职场文书
安全横幅标语
2014/06/09 职场文书
2016形势与政策学习心得体会
2016/01/12 职场文书
CSS 鼠标点击拖拽效果的实现代码
2022/12/24 HTML / CSS