简易计算器实现优化
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>calculator-小太阳</title> <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script> </head> <style type="text/css"> * { padding: 0; margin: 0; } li { list-style: none; } #counter {width: 500px; height: 420px; position: relative; } #counter h2 { line-height: 42px; padding-left: 15px; font-size: 14px; font-family: arial; color:#FFF; } #counter a {font-weight: normal; text-decoration: none; color:#FFF; } #counter a:hover {text-decoration: underline; } #bg { width: 280px; height: 200px; border: 3px solid #004f69; background: #FFFFFF; filter: alpha(opacity=80); opacity: 0.8; position: absolute; left: 50%; top: 115px; margin-left:-141px;} #counter_content { width: 250px; position: absolute; top: 130px; left: 130px; z-index: 1; } #counter_content h3 { margin-bottom: 10px; } #counter_content h3 input { width: 223px; height: 30px; line-height: 30px; padding: 0 10px; background: url(images/ico.png) no-repeat; text-align: right; color: #333; font-size: 14px; font-weight: bold; } #counter_content ul { width: 250px; } #counter_content li { width: 60px; height: 30px; line-height: 30px; float: left; background: url(images/ico.png) no-repeat -303px 0; text-align: center; color: #fff; cursor: pointer; margin: 0 1px 4px 0; } #counter_content .active { background: url(images/ico.png) no-repeat -244px 0; } #counter p { width: 500px; position: absolute; bottom: 20px; left: 0; color: #FFF; text-align: center; font-size: 12px; } </style> <body> <div id="counter"> <div id="counter_content"> <h3><input id="input1" type="text" value="0" /></h3> <ul> <li>7</li> <li>8</li> <li>9</li> <li>+</li> <li>4</li> <li>5</li> <li>6</li> <li>-</li> <li>1</li> <li>2</li> <li>3</li> <li>×</li> <li>0</li> <li>C</li> <li>=</li> <li>÷</li> </ul> </div> <div id="bg"></div> <p>power by dingyue </p> </div> </body> </html> <script type="text/javascript"> /* andy Ding */ var counter =(function(){ var sNum1=''; var val=''; //是否需要清除输入框中已有的内容 var bNeedClear=false; var count = function(iNum1, iNum2, val){ var iResult=0; switch(val){ case '×': iResult=iNum1*iNum2; break; case '+': iResult=iNum1+iNum2; break; case '-': iResult=iNum1-iNum2; break; case '÷': iResult=iNum1/iNum2; break; default: iResult=iNum2; } return iResult; }; var doInput= function(){ var oInput=document.getElementById('input1'); //alert(""+this.innerHTML); var sHtml=this.innerHTML.replace(' ',''); switch(sHtml){ case '=': oInput.value=count(parseInt(sNum1), parseInt(oInput.value), val); sNum1=''; val=''; bNeedClear=true; break; case '+': case '-': case '×': case '÷': bNeedClear=true; if(sNum1.length!=0){ oInput.value=count(parseInt(sNum1), parseInt(oInput.value), val); } val=sHtml; sNum1=oInput.value; break; case 'C': oInput.value='0'; sNum1=''; val=''; break; default: //数字 if(bNeedClear){ oInput.value=parseInt(sHtml, 10); bNeedClear=false; } else{ oInput.value=parseInt(oInput.value+sHtml, 10); } break; } }; var init = function(){ var aLi=document.getElementsByTagName('li'); var i=0; for(i=0;i<aLi.length;i++){ aLi[i].onmousedown=doInput; aLi[i].onmouseover=function () { this.className='active'; }; aLi[i].onmouseout=function () { this.className=''; }; } }; return { init:init } })(); counter.init(); </script> <!-- 计算器原生写法 -->
相信才会最好