当前位置:   article > 正文

基于js+css的计算器_用css和js做带有根号,回退,删除能计算的计算器

用css和js做带有根号,回退,删除能计算的计算器

 html代码部分

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8" />
  5. <title>计算器</title>
  6. <link rel="stylesheet" href="css/计算器.css" />
  7. </head>
  8. <body>
  9. <!-- 第一行输入框 -->
  10. <!-- 六行行四列 -->
  11. <table style="border: 1 px solid red;">
  12. <tr>
  13. <td colspan="4"><input id="text" type="text" /></td>
  14. </tr>
  15. <tr>
  16. <td><button class="btn">AC</button></td>
  17. <td><button class="btn">/</button></td>
  18. <td><button class="btn">*</button></td>
  19. <td><button class="btn"></button></td>
  20. </tr>
  21. <tr>
  22. <td><button class="btn">9</button></td>
  23. <td><button class="btn">8</button></td>
  24. <td><button class="btn">7</button></td>
  25. <td><button class="btn">-</button></td>
  26. </tr>
  27. <tr>
  28. <td><button class="btn">6</button></td>
  29. <td><button class="btn">5</button></td>
  30. <td><button class="btn">4</button></td>
  31. <td><button class="btn">+</button></td>
  32. </tr>
  33. <tr>
  34. <td><button class="btn">3</button></td>
  35. <td><button class="btn">2</button></td>
  36. <td><button class="btn">1</button></td>
  37. <td rowspan="2"><button class="btn" id="d">=</button></td>
  38. </tr>
  39. <tr>
  40. <td colspan="2"><button class="btn">0</button></td>
  41. <td><button class="btn">.</button></td>
  42. </tr>
  43. </table>
  44. <script>
  45. //获取按钮
  46. var buttonal=document.getElementsByClassName ("btn");
  47. var textal=document.getElementById("text");
  48. var res=[]; //定义一个数组存储输入的值
  49. var flag=false;
  50. for(var i=0;i<buttonal.length;i++){
  51. buttonal [i].onclick=addclick;
  52. function addclick(){
  53. //输入为数字或者为“.”
  54. if(!isNaN(this.innerHTML) || this.innerHTML=="."){
  55. //文本框初值不为0
  56. flag = true;
  57. if(textal.value!== "0"){
  58. //文本框中含有“.”
  59. if(textal.value.indexOf(".")!==-1){
  60. //处理点重复的问题 文本框里面有点 不上去点(用户按的数字 得加 用户按的是点 不加)
  61. //输入"."时
  62. if(this.innerHTML!== "."){
  63. textal.value+=this.innerHTML;
  64. }
  65. }
  66. else{
  67. textal.value+=this.innerHTML;
  68. }
  69. }
  70. //文本框初值为0
  71. else{
  72. if(this.innerHTML =="."){
  73. textal.value="0"+this.innerHTML ;
  74. }
  75. else{
  76. textal.value=this.innerHTML;
  77. }
  78. }
  79. }
  80. //非数字
  81. else{
  82. switch(this.innerHTML ) {
  83. case "+" :save(this);
  84. break;
  85. case "-" :save(this);
  86. break;
  87. case "/" :save(this);
  88. break;
  89. case "*" :
  90. save(this);
  91. break;
  92. case "=":
  93. res.push(textal.value);
  94. var result=eval(res.join(""));
  95. if(result =="Infinity"){
  96. remove_add ("remove");
  97. }
  98. textal.value=result==Infinity?"除数不能为零":result;
  99. res=[];
  100. break;
  101. case "←":
  102. //从后往前一个一个的减数字 substr(start,count)
  103. textal.value = textal.value.length==1 ? "0":textal.value.substr(0,textal.value.length-1);
  104. break;
  105. case "AC":
  106. textal.value="";
  107. res=[];
  108. remove_add("add");
  109. break;
  110. }
  111. }
  112. }
  113. }
  114. function save(mini){
  115. //清屏之前存储用户按的值
  116. // 确认一个条件 用户是连续按符号 还是数字+符号
  117. if(!flag){ //连续两次按符号时
  118. res[res.length-1]=mini.innerHTML ; //第二次按的符号替代第一次的
  119. }
  120. else{
  121. res.push(textal.value );
  122. res.push(mini.innerHTML);
  123. }
  124. textal.value="";
  125. flag=false;
  126. }
  127. //卸载除AC以外的所有元素的事件
  128. function remove_add(p){
  129. for(var i=0;i<buttonal.length;i++){
  130. if(p == "add"){
  131. buttonal[i].onclick = addclick;
  132. }
  133. else{
  134. if(buttonal[i].innerHTML!="AC"){
  135. buttonal[i].onclick = null;
  136. }
  137. }
  138. }
  139. }
  140. </script>
  141. </body>
  142. </html>

css代码部分

  1. *{
  2. padding:0;
  3. margin:0;
  4. }
  5. table{
  6. width:400px;
  7. margin:auto;
  8. border:1px solid silver;
  9. border-collapse: collapse;/*列与列的间距*/
  10. }
  11. td {
  12. width: 100px;
  13. border: 1px solid #525252;
  14. }
  15. td input{
  16. width:98.7%;
  17. height:60px;
  18. outline: none;
  19. text-align: right;
  20. font-size: 20px;
  21. background: white;
  22. }
  23. td button{
  24. width:100%;
  25. height:60px;
  26. font-size: 22px;
  27. background: rgba(223, 255, 243, 0.81);
  28. }
  29. #d{
  30. width:100%;
  31. height:120px;
  32. font-size: 22px;
  33. background: rgba(223, 255, 243, 0.81);
  34. }

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号