HTML+CSS+JS实现计算机功能

      本文运用前端代码实现一个简单的计算器界面,并通过JS实现了基本的运算功能。(加、减、乘、除、清屏/退格、取余、取倒) 需要源代码的可以加下面的QQ群,里面有各种学习资料,期待大家的加入!

点我进群     一起学习交流!(群里有许多的学习资料,我做过的一些网页我都上传在群里了,需要的直接下载就可以了)

QQ群:722384575

1.编写前端界面


  
   
   
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>我的计算器 </title>
  6. <style>
  7. .containor{
  8. border: 1px solid black;
  9. background-color: #fafafa;
  10. height: 380px;
  11. width: 296px;
  12. margin: auto;
  13. margin-top: 40px;
  14. }
  15. .top{
  16. background-color: lightgray;
  17. height: 30px;
  18. }
  19. a{
  20. display: block;
  21. float: left;
  22. font-size: 8px;
  23. height: 26px;
  24. padding: 0 6px;
  25. margin-left: 6px;
  26. line-height: 26px;
  27. }
  28. a :hover{
  29. background-color: dimgray;
  30. color: white;
  31. cursor: default;
  32. }
  33. .input{
  34. width: 86%;
  35. height: 60px;
  36. padding: 4px;
  37. margin: 0 auto;
  38. margin-top: 12px;
  39. }
  40. .input :focus{
  41. outline: none;
  42. }
  43. button{
  44. width: 50px;
  45. height: 30px;
  46. margin: 2px;
  47. text-align: center;
  48. font-size: 10px;
  49. border: 0.5px solid gray;
  50. }
  51. button :hover{
  52. border: 1px solid gray;
  53. background-color: #ffaa55;
  54. outline: none;
  55. }
  56. .bottom{
  57. width: 100%;
  58. height: 30px;
  59. background-color:lightgray;
  60. color: white;
  61. position: relative;
  62. margin-top: 56px;
  63. }
  64. </style>
  65. </head>
  66. <body>
  67. <div class="containor">
  68. <div class="top">
  69. <a>查看(V) </a>
  70. <a style="margin-left: 40px;">编辑(E) </a>
  71. <a style="margin-left: 40px;">帮助(H) </a>
  72. </div>
  73. <div style="text-align: center">
  74. <input id="cin" class="input">
  75. </div>
  76. <div style="margin-left: 2px;">
  77. <div style="margin:20px 10px;height:160px;">
  78. <div style="float: left;">
  79. <div>
  80. <button>MC </button> <button>MR </button> <button>MS </button> <button>M+ </button> <button>M- </button> <br>
  81. <button>BK </button> <button>CE </button> <button>C </button> <button >( </button> <button>) </button> <br>
  82. <button>7 </button> <button>8 </button> <button>9 </button> <button >* </button> <button>/ </button> <br>
  83. <button>4 </button> <button>5 </button> <button>6 </button> <button >% </button> <button>1/x </button> <br>
  84. </div>
  85. <div style="float: left;">
  86. <button>1 </button> <button>2 </button> <button>3 </button> <button>- </button> <br>
  87. <button style="width: 104px">0 </button> <button>. </button> <button>+ </button>
  88. </div>
  89. <div style="float: left;">
  90. <button style="height: 64px;margin-top: 2px">= </button>
  91. </div>
  92. </div>
  93. </div>
  94. </div>
  95. <div class="bottom">
  96. </div>
  97. </div>
  98. </body>
  99. </html>

 界面如下:

2.通过JS实现计算器功能

  • 在需要实现功能的地方添加相应的函数点击事件

  
   
   
  1. <button onclick="back1()">BK </button> <button onclick="clearerr()">CE </button> <button onclick="clear1()">C </button> <button onclick="inputStr('(')">( </button> <button onclick="inputStr(')')">) </button> <br>
  2. <button onclick="inputStr(7)">7 </button> <button onclick="inputStr(8)" >8 </button> <button onclick="inputStr(9)">9 </button> <button onclick="inputStr('*')">* </button> <button onclick="inputStr('/')">/ </button> <br>
  3. <button onclick="inputStr(4)">4 </button> <button onclick="inputStr(5)">5 </button> <button onclick="inputStr(6)">6 </button> <button onclick=inputStr('%')>% </button> <button onclick="reciprocal()">1/x </button> <br>
  4. <button onclick="inputStr(1)">1 </button> <button onclick="inputStr(2)">2 </button> <button onclick="inputStr(3)">3 </button> <button onclick="inputStr('-')">- </button>
  5. <button onclick="inputStr(0)">0 </button> <button onclick="inputStr('.')">. </button> <button onclick="inputStr('+')">+ </button>
  6. <button onclick="equal()">= </button>
  •  对函数进行初始化

  
   
   
  1. <script>
  2. window.οnlοad= function(){
  3. // 初始化内容
  4. var res = eval( "(1+4)*2");
  5. console.log(res);
  6. //打印进行测试
  7. }
  8. </script>
  •  实现输入框的输入(数字、小数点、运算符、括号)

  
   
   
  1. <input id= "cin" class= "input">
  2. <script>
  3. function inputStr(c) {
  4. var cin = document.getElementById( "cin");
  5. var val = cin.value + c;
  6. cin.value = val;
  7. }
  8. </script>
  •  等于号的实现

  
   
   
  1. function equal() {
  2. var cin = document.getElementById( "cin");
  3. var val = cin.value;
  4. var res = eval(val);
  5. cin.value = res;
  6. }
  •  清屏C 、退格BK、错误回退CE的实现

  
   
   
  1. function clear1() {
  2. var cin = document.getElementById( "cin");
  3. cin.value = "";
  4. // if(cin.value.length>0){
  5. // document.getElementById("cin").value = "";
  6. // }
  7. }
  8. function back1() {
  9. var cin = document.getElementById( "cin");
  10. cin.value = cin.value.substr( 0,cin.value.length -1);
  11. }
  12. function clearerr() {
  13. var cin = document.getElementById( "cin");
  14. var val = cin.value;
  15. var index = val.lastIndexOf( "-");
  16. if(index=== -1){
  17. index = val.lastIndexOf( "+");
  18. }
  19. if(index=== -1){
  20. index = val.lastIndexOf( "*");
  21. }
  22. if(index=== -1){
  23. index = val.lastIndexOf( "/");
  24. }
  25. if(index!== -1){
  26. val = val.substring( 0,index+ 1);
  27. }
  28. cin.value = val;
  29. }
  •  倒数的实现

  
   
   
  1. function reciprocal() {
  2. var cin = document.getElementById( "cin");
  3. var rst = 1/cin.value;
  4. cin.value = rst;
  5. }

目前 查看、编辑、帮助以及按钮的首行功能还未实现,可自行添加。

猜你喜欢

转载自blog.csdn.net/m0_46374969/article/details/112988158