1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title> 进度条 </title> <script language='JavaScript'> /* <![CDATA[ */ function ProgressBar(info){ var stem = {};// 此函数最后返回的代表进度条的对象。 var done = 0, length, outline, bar;// 声明内部变量。 bar = document.getElementById('done');// 进度条中绿色的变化部分。 length = 80; // 重置进度到零。 function reset(){ return to(0); } // 设置进度到某个值。 function to(value){ if (value >= 100) { done = 100; bar.setAttribute('width', length); } else { done = value; bar.setAttribute('width', Math.round(done * length / 100)); } return stem; } // 进度变化某个值。 function advance(step){ return to(done + step); } // 以下给进度条对象添加方法。 // 获得当前进度值。 stem.getDone = function(){ return done }; stem.reset = reset; stem.to = to; stem.advance = advance; return stem;// 返回可供脚本使用的进度条对象。 } // 测试进度条对象。 function testBar(){ var bar = ProgressBar(); // 此内部函数每运行一次,增加进度值 1,直到进度值为 100。 function test(){ if (bar.getDone() === 100) { clearInterval(id); } else { bar.advance(1); } } // 每十分之一秒改变一次进度。 var id = setInterval(test, 100); } // 页面载入后开始测试。 window.addEventListener('load', testBar, true); /* ]]> */ </script> </head> <body> <div id='svgDiv'> <svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 100 100" style="border:1px solid; width:100px; height:100px; "> <g id='progBar'> <rect x='10' y='45' width='80' height='10' stroke='grey' fill='white'/> <rect id='done' x='10' y='45' width='0' height='10' fill='green'/> </g> </svg> </div> </body> </html> |
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |