circleProgress.html 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8"/>
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  6. <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
  7. <title></title>
  8. <link rel="stylesheet" href="../../../assets/libs/layui/css/layui.css"/>
  9. <link rel="stylesheet" href="../../../assets/module/admin.css?v=315"/>
  10. <!--[if lt IE 9]>
  11. <script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
  12. <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
  13. <![endif]-->
  14. <style>
  15. .demo-cp-item {
  16. display: inline-block;
  17. text-align: center;
  18. margin: 8px 25px 0 25px;
  19. color: #666;
  20. }
  21. .demo-cp-item > div:nth-child(2) {
  22. margin-top: 6px;
  23. }
  24. /** 自定义样式1 */
  25. #demoProgress9 .circle-progress-value {
  26. stroke-width: 11px;
  27. stroke: #00CC00;
  28. stroke-dasharray: 0 23.3;
  29. stroke-linecap: round;
  30. }
  31. #demoProgress9 .circle-progress-circle {
  32. stroke: transparent;
  33. }
  34. #demoProgress9 .circle-progress-text {
  35. font-family: "Gotham rounded";
  36. font-size: 16px;
  37. fill: #00CC00;
  38. }
  39. /** 自定义样式2 */
  40. #demoProgress10 .circle-progress-circle {
  41. stroke-width: 6px;
  42. stroke: #ccc;
  43. stroke-dasharray: 1 5;
  44. stroke-dashoffset: 1.6;
  45. }
  46. #demoProgress10 .circle-progress-value {
  47. stroke: #43A3FB;
  48. }
  49. #demoProgress10.circle-progress-success .circle-progress-value {
  50. stroke: #5CB85C;
  51. }
  52. #demoProgress10.circle-progress-success .circle-progress-text {
  53. fill: #5CB85C;
  54. }
  55. /** 自定义样式3 */
  56. #demoProgress11 .circle-progress-value {
  57. stroke-width: 8px;
  58. stroke: #3FDABA;
  59. }
  60. #demoProgress11 .circle-progress-circle {
  61. stroke-width: 6px;
  62. stroke: #E0FAF1;
  63. }
  64. /** 自定义样式4 */
  65. #demoProgress12 .circle-progress-value {
  66. stroke-width: 22px;
  67. stroke: #3FDABA;
  68. stroke-dasharray: 60 2;
  69. stroke-linecap: butt;
  70. }
  71. #demoProgress12 .circle-progress-circle {
  72. stroke: #E0FAF1;
  73. stroke-width: 22px;
  74. fill: #E0FAF1;
  75. }
  76. #demoProgress12 .circle-progress-text {
  77. font-family: "Gotham";
  78. font-size: 16px;
  79. fill: #3FDABA;
  80. }
  81. /** 自定义样式5 */
  82. #demoProgress13 > svg {
  83. width: 40px;
  84. height: 40px;
  85. }
  86. #demoProgress13 .circle-progress-value {
  87. stroke-width: 8px;
  88. }
  89. #demoProgress13 .circle-progress-circle {
  90. stroke-width: 8px;
  91. }
  92. #demoProgress13 .circle-progress-text {
  93. font-size: 30px;
  94. }
  95. </style>
  96. </head>
  97. <body>
  98. <!-- 正文开始 -->
  99. <div class="layui-fluid">
  100. <div class="layui-card">
  101. <div class="layui-card-header">基本用法</div>
  102. <div class="layui-card-body">
  103. <div class="demo-cp-item">
  104. <div id="demoProgress1"></div>
  105. <div>默认样式</div>
  106. </div>
  107. <div class="demo-cp-item">
  108. <div id="demoProgress2"></div>
  109. <div>逆时针方向</div>
  110. </div>
  111. <div class="demo-cp-item">
  112. <div id="demoProgress3"></div>
  113. <div>自定义起始位置</div>
  114. </div>
  115. </div>
  116. </div>
  117. <div class="layui-card">
  118. <div class="layui-card-header">文字样式</div>
  119. <div class="layui-card-body">
  120. <div class="demo-cp-item">
  121. <div id="demoProgress4"></div>
  122. <div>vertical</div>
  123. </div>
  124. <div class="demo-cp-item">
  125. <div id="demoProgress5"></div>
  126. <div>percent</div>
  127. </div>
  128. <div class="demo-cp-item">
  129. <div id="demoProgress6"></div>
  130. <div>value</div>
  131. </div>
  132. <div class="demo-cp-item">
  133. <div id="demoProgress7"></div>
  134. <div>valueOnCircle</div>
  135. </div>
  136. <div class="demo-cp-item">
  137. <div id="demoProgress8"></div>
  138. <div>none</div>
  139. </div>
  140. </div>
  141. </div>
  142. <div class="layui-card">
  143. <div class="layui-card-header">自定义样式</div>
  144. <div class="layui-card-body">
  145. <div class="demo-cp-item">
  146. <div id="demoProgress9"></div>
  147. </div>
  148. <div class="demo-cp-item">
  149. <div id="demoProgress10"></div>
  150. </div>
  151. <div class="demo-cp-item">
  152. <div style="position: relative;">
  153. <div id="demoProgress11"></div>
  154. <div style="position: absolute;left: 50%;top: 50%;transform: translate(-50%,-50%);">
  155. <div style="font-size: 22px;color: #3DDABB;">60<span style="font-size: 14px;">%</span></div>
  156. <div style="color: #515a6e;font-size: 14px;">通过率</div>
  157. </div>
  158. </div>
  159. </div>
  160. <div class="demo-cp-item">
  161. <div id="demoProgress12"></div>
  162. </div>
  163. <div class="demo-cp-item">
  164. <div id="demoProgress13"></div>
  165. </div>
  166. </div>
  167. </div>
  168. </div>
  169. <!-- 加载动画 -->
  170. <div class="page-loading">
  171. <div class="ball-loader">
  172. <span></span><span></span><span></span><span></span>
  173. </div>
  174. </div>
  175. <!-- js部分 -->
  176. <script type="text/javascript" src="../../../assets/libs/layui/layui.js"></script>
  177. <script type="text/javascript" src="../../../assets/js/common.js?v=315"></script>
  178. <script>
  179. layui.use(['layer', 'CircleProgress'], function () {
  180. var $ = layui.jquery;
  181. var layer = layui.layer;
  182. var CircleProgress = layui.CircleProgress;
  183. // 快速使用
  184. new CircleProgress('#demoProgress1', {
  185. max: 100,
  186. value: 20,
  187. });
  188. // 逆时针方向
  189. new CircleProgress('#demoProgress2', {
  190. max: 100,
  191. value: 20,
  192. clockwise: false
  193. });
  194. // 自定义起始位置
  195. new CircleProgress('#demoProgress3', {
  196. max: 100,
  197. value: 20,
  198. startAngle: 225
  199. });
  200. // 文字垂直
  201. new CircleProgress('#demoProgress4', {
  202. max: 100,
  203. value: 20,
  204. textFormat: 'vertical'
  205. });
  206. // 文字百分比
  207. new CircleProgress('#demoProgress5', {
  208. max: 100,
  209. value: 20,
  210. textFormat: 'percent'
  211. });
  212. // 文字只显示值
  213. new CircleProgress('#demoProgress6', {
  214. max: 100,
  215. value: 20,
  216. textFormat: 'value'
  217. });
  218. // 文字值显示在进度条上
  219. new CircleProgress('#demoProgress7', {
  220. max: 100,
  221. value: 20,
  222. textFormat: 'valueOnCircle'
  223. });
  224. // 文字不显示
  225. new CircleProgress('#demoProgress8', {
  226. max: 100,
  227. value: 20,
  228. textFormat: 'none'
  229. });
  230. // 自定义样式1
  231. new CircleProgress('#demoProgress9', {
  232. max: 12,
  233. value: 9,
  234. textFormat: function (value, max) {
  235. return value + ' dots';
  236. }
  237. });
  238. // 自定义样式2
  239. var ins10 = new CircleProgress('#demoProgress10', {
  240. max: 100,
  241. value: 0,
  242. textFormat: function (value, max) {
  243. if (value == max) {
  244. return 'OK';
  245. } else {
  246. return value + '%';
  247. }
  248. }
  249. });
  250. var timer10 = setInterval(function () {
  251. ins10.value += 1;
  252. if (ins10.value == ins10.max) {
  253. $('#demoProgress10').addClass('circle-progress-success');
  254. clearInterval(timer10);
  255. }
  256. }, 100);
  257. // 自定义样式3
  258. new CircleProgress('#demoProgress11', {
  259. max: 100,
  260. value: 60,
  261. textFormat: 'none'
  262. });
  263. // 自定义样式4
  264. new CircleProgress('#demoProgress12', {
  265. max: 4,
  266. value: 3,
  267. textFormat: 'vertical',
  268. clockwise: false
  269. });
  270. // 自定义样式5
  271. new CircleProgress('#demoProgress13', {
  272. max: 100,
  273. value: 20,
  274. textFormat: 'percent'
  275. });
  276. });
  277. </script>
  278. </body>
  279. </html>