zoukankan      html  css  js  c++  java
  • jQuery实现上传进度条效果

    效果:(点击上传按钮)

    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. })
     





  • 相关阅读:
    STL堆算法性能分析与优化方法(GCC4.4.2 stl_heap.h源代码分析与改进方案)
    POJ 1631 Bridging Singnals
    一个用于读unicode文本的迭代器(iterator)
    常用文本压缩算法及实现(To be finshed!)
    volatile语义及线程安全singleton模式探讨
    C++实现的huffman与canonical huffman的压缩解压缩系统,支持基于单词的压缩解压缩
    linux环境下 C++性能测试工具 gprof + kprof + gprof2dot
    多线程统计多个文件的单词数目C++0x多线程使用示例
    python嵌入C++ boost.python如何在C++中调用含有不定长参数tuple变量和关键字参数dict变量的函数
    boost.python入门教程 python 嵌入c++
  • 原文地址:https://www.cnblogs.com/moyuling/p/4b495108fef1d9e80f5fd118ec708ad0.html
Copyright © 2011-2022 走看看