码迷,mamicode.com
首页 > Web开发 > 详细

jQuery实现上传进度条效果

时间:2015-11-16 14:05:21      阅读:257      评论:0      收藏:0      [点我收藏+]

标签:

效果:(点击上传按钮)

See the Pen pjGNJr by moyu (@MoYu1991) on CodePen.

html代码:

 
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>upload</title>
  6. <link rel="stylesheet" type="text/css" href="upload/upload.css">
  7. <script type="text/javascript" src="upload/jquery.js"></script>
  8. </head>
  9. <body>
  10. <span class="upload-span">开始上传文件</span>
  11. <div class="upload-mask"></div>
  12. <div class="upload-component">
  13. <div class="upload-close">
  14. <span class="upload-close-span">关闭</span>
  15. </div>
  16. <div class="upload-content">
  17. <div class="progress">
  18. <span class="upload-text"></span>
  19. <span class="uploaded"></span>
  20. </div>
  21. <div class="confirm-cancel">
  22. <span class="confirm">确认</span>
  23. <span class="cancel">取消</span>
  24. </div>
  25. </div>
  26. </div>
  27. <script type="text/javascript" src="upload/upload.js"></script>
  28. </body>
  29. </html>
 
CSS代码:
 
  1. .upload-span{
  2. display:inline-block;
  3. width:120px;
  4. height:40px;
  5. color:#FFFFFF;
  6. text-align: center;
  7. line-height:40px;
  8. background-color: blue;
  9. border:2px solid blue;
  10. border-radius:5px;
  11. cursor: pointer;
  12. letter-spacing:2px;
  13. }
  14. .upload-mask{
  15. position: absolute;
  16. top:0;
  17. left:0;
  18. z-index:9;
  19. width:100%;
  20. height:100%;
  21. background-color: rgba(84,84,84,0.3);
  22. display: none;
  23. }
  24. .upload-component{
  25. position: absolute;
  26. z-index:99;
  27. top:50%;
  28. left:50%;
  29. margin-left:-120px;
  30. margin-top:-60px;
  31. width:240px;
  32. height:120px;
  33. background-color:#FFFFFF;
  34. display:none;
  35. }
  36. .upload-close{
  37. position: relative;
  38. height:30px;
  39. background-color: rgb(234,234,234);
  40. }
  41. .upload-close span{
  42. position: absolute;
  43. right:15px;
  44. line-height:30px;
  45. cursor: pointer;
  46. }
  47. .upload-content,.confirm-cancel{
  48. margin-top:15px;
  49. }
  50. .progress{
  51. position:relative;
  52. width:90%;
  53. height:22px;
  54. margin-left:4.88888%;
  55. text-align: center;
  56. line-height:22px;
  57. border:1px solid #ccc;
  58. }
  59. .upload-text{
  60. position:absolute;
  61. z-index:99999;
  62. color:red;
  63. }
  64. .uploaded{
  65. position:absolute;
  66. left:0;
  67. z-index:9999;
  68. width:0%;
  69. height:100%;
  70. background-color: blue;
  71. color:#FFFFFF;
  72. }
  73. .confirm-cancel span{
  74. display:inline-block;
  75. width:60px;
  76. height:30px;
  77. line-height:30px;
  78. text-align: center;
  79. background-color:#ccc;
  80. cursor:wait;
  81. }
  82. .confirm{
  83. margin-left:40%;
  84. }
  85. .cancel{
  86. margin-left:10px;
  87. }
 
jQuery代码:
 
  1. $(function (){
  2. var $uploadSpan = $(‘.upload-span‘);
  3. var $uploadMask = $(‘.upload-mask‘);
  4. var $uploadContent = $(‘.upload-component‘);
  5. var $closeConfirmCancel = $(‘.upload-close-span,.confirm,.cancel‘);
  6. var $uploadTextSpan = $(‘.upload-text‘);
  7. function showMask(){
  8. $(".upload-mask,.upload-component").css({display:‘block‘});
  9. progressBar();
  10. $uploadSpan.off(‘click‘,showMask);
  11. }
  12. function hiddenMask(){
  13. $uploadMask.css({display:‘none‘});
  14. $uploadSpan.on(‘click‘,showMask);
  15. }
  16. function closeConfirmCancel(){
  17. $uploadContent.css({display:‘none‘});
  18. $uploadTextSpan.text(‘‘).next().css({width:0});
  19. hiddenMask();
  20. }
  21. // 模拟进度
  22. function progressBar(){
  23. var max =100;
  24. var init =0;
  25. var uploaded;
  26. var test = setInterval(function(){
  27. init +=5;
  28. uploaded = parseInt(init / max *100)+‘%‘;
  29. $uploadTextSpan.text(uploaded).next().css({width:uploaded});
  30. if(init ===100){
  31. clearInterval(test);
  32. $uploadTextSpan.text(‘上传完成‘);
  33. $(‘.confirm-cancel span‘).css({cursor:‘pointer‘});
  34. $(‘.confirm‘).css({backgroundColor:‘rgb(111,197,293)‘});
  35. $(‘.cancel‘).css({backgroundColor:‘rgb(175,194,211)‘})
  36. $closeConfirmCancel.on(‘click‘,closeConfirmCancel);
  37. }
  38. else{
  39. $closeConfirmCancel.off(‘click‘,closeConfirmCancel);
  40. $(‘.upload-close-span‘).on(‘click‘,function(){
  41. clearInterval(test);
  42. closeConfirmCancel();
  43. });
  44. }
  45. },1000);
  46. }
  47. $uploadSpan.on(‘click‘,showMask);
  48. })
 





jQuery实现上传进度条效果

标签:

原文地址:http://www.cnblogs.com/moyuling/p/4b495108fef1d9e80f5fd118ec708ad0.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!