SVG实现圆环loading进度效果实例页面
2015-08-08 11:43
585 查看
SVG实现圆环loading进度效果实例页面
数字跳动
<svg width="440" height="440" viewbox="0 0 440 440"> <circle cx="220" cy="220" r="170" stroke-width="50" stroke="#D1D3D7" fill="none"></circle> <circle cx="220" cy="220" r="170" stroke-width="50" stroke="#00A5E0" fill="none" transform="matrix(0,-1,1,0,0,440)" stroke-dasharray="0 1069"></circle> </svg> <p>拖我:<input id="range" type="range" min="0" max="100" value="0" style="width:300px;"></p> <script> if (window.addEventListener) { var range = document.querySelector("#range"), circle = document.querySelectorAll("circle")[1]; if (range && circle) { range.addEventListener("change", function() { var percent = this.value / 100, perimeter = Math.PI * 2 * 170; circle.setAttribute('stroke-dasharray', perimeter * percent + " " + perimeter * (1- percent)); }); } } </script>
数字跳动
<style> .num { width: 40px; height: 40px; object-fit: none; object-position: 0 0; transition: object-position .25s; } .num0 { } .num1 { object-position: 0 -40px; } .num2 { object-position: 0 -80px; } .num3 { object-position: 0 -120px; } .num4 { object-position: 0 -160px; } .num5 { object-position: 0 -200px; } .num6 { object-position: 0 -240px; } .num7 { object-position: 0 -280px; } .num8 { object-position: 0 -320px; } .num9 { object-position: 0 -360px; } </style> <body> <div class="demo"> <p><strong>显示的数字是(100~999):<input type="number" value="0" min="0" max="999"></strong></p> <img src="http://www.zhangxinxu.com/study/201503/icons-ol.png" class="num num0"> <img src="http://www.zhangxinxu.com/study/201503/icons-ol.png" class="num num0"> <img src="http://www.zhangxinxu.com/study/201503/icons-ol.png" class="num num0"> </div> </body> <script> if (window.addEventListener) { var eleNums = document.querySelectorAll(".num"); document.querySelector(".demo input").addEventListener("change", function() { var value = this.value; if (!value ) { value =0;} this.value = value; var deg = this.value.split(""); switch(deg.length){ case 1:deg.forEach(function(x, y) { eleNums[0].className="num num"+0; eleNums[1].className="num num"+0; eleNums[y+2].className = "num num" + x; }); break; case 2: deg.forEach(function(x, y) { eleNums[0].className="num num"+0; eleNums[y+1].className = "num num" + x; }); break; case 3:deg.forEach(function(x, y) { eleNums[y].className = "num num" + x; }); } }); } </script>
相关文章推荐
- HEVC码率控制算法研究与HM相应代码分析(一)——HEVC标准及编码流程介绍
- list,map,set,array的特点和相互转换
- hibernate学习系列-----(6)hibernate对集合属性的操作之Set集合篇
- java反射获取注解并拼接sql语句
- c#操作附加数据库的方法
- Apache如何每天生成独立日志文件(access_log和error_log)
- adb停止工作解决
- 在开发板上挂载NFS
- hdu5361 In Touch 神奇的dij,神奇的写法
- Tomcat无法shutdown进程问题解决办法
- libuv(不断更新)
- Android studio internal http server disabled
- 【hibernate mapping 详解】….hbm.xml配置
- 用最小最大的两个数交换首尾两数
- LeetCode Everyday -- 83
- org.springframework.validation.BindException
- 添加链接
- C - A Plug for UNIX - poj 1087(最大流)
- 九度oj 1112
- 2015多校训练5题解与代码