progressbar.html 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>Hello MUI</title>
  6. <meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=1,user-scalable=no">
  7. <meta name="apple-mobile-web-app-capable" content="yes">
  8. <meta name="apple-mobile-web-app-status-bar-style" content="black">
  9. <!--标准mui.css-->
  10. <link rel="stylesheet" href="../css/mui.min.css">
  11. <!--App自定义的css-->
  12. <!--<link rel="stylesheet" type="text/css" href="../css/app.css" />-->
  13. <style>
  14. h5 {
  15. margin-bottom: 10px;
  16. text-align: left;
  17. }
  18. .mui-demo-container{
  19. background-color: #fff;
  20. padding: 10px 15px;
  21. }
  22. .mui-btn-block{
  23. padding: 5px 0;
  24. }
  25. #demo5 .mui-progressbar{
  26. margin: 15px 10px;
  27. }
  28. .mui-progressbar-success span {
  29. background-color: #4cd964;
  30. }
  31. .mui-progressbar-warning span {
  32. background-color: #f0ad4e;
  33. }
  34. .mui-progressbar-danger span {
  35. background-color: #dd524d;
  36. }
  37. .mui-progressbar-royal span {
  38. background-color: #8a6de9;
  39. }
  40. /*Android平台使用父子webview,因此需要修改顶部进度条的显示位置*/
  41. .mui-plus.mui-android>.mui-progressbar{
  42. top:0
  43. }
  44. </style>
  45. </head>
  46. <body>
  47. <header class="mui-bar mui-bar-nav">
  48. <a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
  49. <h1 class="mui-title">progress bar(进度条)</h1>
  50. </header>
  51. <div class="mui-content">
  52. <div class="mui-demo-container">
  53. <div id="demo1" class="mui-text-center">
  54. <h5>动态设置进度条进度</h5>
  55. <p class="mui-progressbar mui-progressbar-in" data-progress="20"><span></span></p>
  56. <ul id="progressbarBtn1" class="mui-pagination">
  57. <li><a href="javascript:;" data-progress="10">10%</a></li>
  58. <li><a href="javascript:;" data-progress="30">30%</a></li>
  59. <li><a href="javascript:;" data-progress="50">50%</a></li>
  60. <li><a href="javascript:;" data-progress="100">100%</a></li>
  61. </ul>
  62. </div>
  63. <div id="demo2">
  64. <h5>动态创建内联进度条及销毁</h5>
  65. <p style="height: 2px;"></p>
  66. <button type="button" class="mui-btn mui-btn-primary mui-btn-outlined mui-btn-block">开始加载</button>
  67. </div>
  68. <div id="demo3">
  69. <h5>动态创建页面顶部进度条</h5>
  70. <button type="button" class="mui-btn mui-btn-primary mui-btn-outlined mui-btn-block">开始加载</button>
  71. </div>
  72. </div>
  73. <div style="padding-left: 10px;margin: 15px 0;">
  74. <h5>无限循环进度条</h5>
  75. </div>
  76. <div class="mui-demo-container">
  77. <div>
  78. <h5>内联无限循环进度条</h5>
  79. <p class="mui-progressbar mui-progressbar-infinite"></p>
  80. </div>
  81. <div id="demo4" style="margin-top: 18px;">
  82. <h5>页面顶部无限循环进度条</h5>
  83. <button type="button" class="mui-btn mui-btn-primary mui-btn-outlined mui-btn-block">开始加载</button>
  84. </div>
  85. </div>
  86. <div style="padding-left: 10px;margin: 15px 0;"><h5>自定义进度条颜色</h5></div>
  87. <div id="demo5" class="mui-demo-container" style="padding-bottom: 30px;">
  88. <p class="mui-progressbar mui-progressbar-success" data-progress="20"><span></span></p>
  89. <p class="mui-progressbar mui-progressbar-warning" data-progress="30" ><span></span></p>
  90. <p class="mui-progressbar mui-progressbar-danger" data-progress="50"><span></span></p>
  91. <p class="mui-progressbar mui-progressbar-royal" data-progress="80"><span></span></p>
  92. </div>
  93. </div>
  94. <script src="../js/mui.min.js"></script>
  95. <script>
  96. //示例1
  97. var progressbar1 = mui('#demo1');
  98. mui(progressbar1).progressbar().setProgress(10)
  99. progressbar1.on('tap', 'a', function() {
  100. mui(progressbar1).progressbar().setProgress(this.getAttribute('data-progress'));
  101. });
  102. /**
  103. * 通过随机数模拟业务进度,真实业务中需根据实际进度修改
  104. * @param {Object} container
  105. * @param {Object} progress
  106. */
  107. function simulateLoading(container, progress) {
  108. if (typeof container === 'number') {
  109. progress = container;
  110. container = 'body';
  111. }
  112. setTimeout(function() {
  113. progress += Math.random() * 20;
  114. mui(container).progressbar().setProgress(progress);
  115. if (progress < 100) {
  116. simulateLoading(container, progress);
  117. } else {
  118. mui(container).progressbar().hide();
  119. }
  120. }, Math.random() * 200 + 200);
  121. }
  122. //动态创建内联进度条
  123. mui("#demo2").on('tap', '.mui-btn', function() {
  124. var container = mui("#demo2 p");
  125. if (container.progressbar({
  126. progress: 0
  127. }).show()) {
  128. simulateLoading(container, 0);
  129. }
  130. });
  131. //页面顶部进度条
  132. var progressbar3 = mui('#demo3');
  133. progressbar3.on('tap', 'button', function() {
  134. mui('body').progressbar({
  135. progress: 0
  136. }).show();
  137. simulateLoading(0);
  138. });
  139. //页面顶部无限进度条
  140. var progressbar4 = mui('#demo4');
  141. progressbar4.on('tap', 'button', function() {
  142. //因为本页面既有顶部准确进度的进度条,也有顶部无限循环的进度条,因此这里需要强制定义progress: undefined覆盖;
  143. //一般使用时,mui(container).progress()构造方法中不传入参数,就表示无限循环;
  144. mui('body').progressbar({
  145. progress: undefined
  146. }).show();
  147. //本示例5秒后自动消失,实际可根据实际情况决定关闭进度条的时机;
  148. setTimeout(function() {
  149. mui('body').progressbar().hide();
  150. }, 5000);
  151. });
  152. //自定义颜色示例
  153. mui("#demo5 .mui-progressbar").each(function () {
  154. mui(this).progressbar({progress:this.getAttribute("data-progress")}).show();
  155. });
  156. </script>
  157. </body>
  158. </html>