JS实现简易网页计算器

女爷i 2022-05-17 10:52 415阅读 0赞

js实现简易计算器。计算器的布局不像表格那么公正对称,所以布局这块相对比较繁琐,但是也可以通过这来练习一下CSS。

一、实现功能

  1. 完成计算器的加减乘除的基本计算功能
  2. 实现输入框中的字符串拼接

二、实现思路

  1. 完成基本布局
  2. js实现运算功能

三、知识点

e.target||e.srcElement :获取触发事件的元素

四、具体代码实现

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>计算器</title>
  6. <style type="text/css">
  7. body {
  8. border: none;
  9. }
  10. h1{
  11. text-align: center;
  12. }
  13. button{
  14. cursor: pointer;
  15. width: 65px;
  16. height: 45px;
  17. background-color: hsla(182, 93%, 45%, 0);
  18. border-radius: 10px;
  19. box-shadow: 3px 3px 5px #ccc;
  20. outline: none;
  21. font-size: 25px;
  22. }
  23. input{
  24. font-size: 25px;
  25. border-radius: 10px;
  26. width: 200px;
  27. height: 40px;
  28. }
  29. #main{
  30. text-align:center;
  31. width:300px;
  32. height: 287px;
  33. margin: 0 auto;
  34. border:2px solid #ccc;
  35. background-image: url('../imges/4.jpg');
  36. }
  37. .num{
  38. margin: 10px;
  39. }
  40. </style>
  41. </head>
  42. <body>
  43. <h1>计算器</h1>
  44. <div id="main" onclick="cal(event);">
  45. <div class="num" >
  46. <input type="text" value="0" readonly="readonly" id="screen" />
  47. <button>C</button>
  48. </div>
  49. <div class="num">
  50. <button>7</button>
  51. <button>8</button>
  52. <button>9</button>
  53. <button>/</button>
  54. </div>
  55. <div class="num">
  56. <button>4</button>
  57. <button>5</button>
  58. <button>6</button>
  59. <button>*</button>
  60. </div>
  61. <div class="num">
  62. <button>1</button>
  63. <button>2</button>
  64. <button>3</button>
  65. <button>-</button>
  66. </div>
  67. <div class="num">
  68. <button>0</button>
  69. <button>.</button>
  70. <button>=</button>
  71. <button>+</button>
  72. </div>
  73. </div>
  74. </body>
  75. <script type="text/javascript">
  76. function cal(e) {
  77. //获取触发事件的元素
  78. var obj = e.target||e.srcElement;
  79. if(obj.nodeName != "BUTTON"){
  80. return;
  81. }
  82. var v = obj.innerHTML;
  83. var screen = document.getElementById("screen");
  84. if(v == "C"){
  85. screen.value = 0;
  86. }else if(v == "="){
  87. //获取到输入框的值
  88. var exp = screen.value;
  89. try{
  90. var result = eval("("+exp+")");
  91. //将计算结果赋值给输入框
  92. screen.value = result;
  93. }catch(e){
  94. console.log(e);
  95. screen.value = "error";
  96. }
  97. }else{
  98. if(screen.value == 0){
  99. screen.value = "";
  100. }
  101. screen.value += v;
  102. }
  103. }
  104. </script>
  105. </html>

五、js部分详解

  1. function cal(e) {
  2. //获取触发事件的元素
  3. var obj = e.target||e.srcElement;
  4. if(obj.nodeName != "BUTTON"){
  5. return;
  6. }
  7. var v = obj.innerHTML;
  8. var screen = document.getElementById("screen");
  9. if(v == "C"){
  10. screen.value = 0;
  11. }else if(v == "="){
  12. //获取到输入框的值
  13. var exp = screen.value;
  14. try{
  15. var result = eval("("+exp+")");
  16. //将计算结果赋值给输入框
  17. screen.value = result;
  18. }catch(e){
  19. console.log(e);
  20. screen.value = "error";
  21. }
  22. }else{
  23. if(screen.value == 0){
  24. screen.value = "";
  25. }
  26. screen.value += v;
  27. }
  28. }

利用e.target||e.srcElement,获取到触发事件的元素,||连接两个语法是为了解决不同浏览器的兼容性问题。

获取到触发事件元素的具体值之后,判断元素值是否等于“=”和“C”,这两个按钮是做区别于普通字符串拼接及计算的其他功能。

C做清屏处理:判断触发事件的按钮值是否为C,若为C,屏幕中只显示0;

=做计算处理:判断触发事件的按钮值是否为=,若为=,利用eval()方法计算屏幕上的公式;

其他触发事件的按钮直接做字符串拼接显示在屏幕上。

六、动图效果

70

今天的分享就到这里啦!欢迎指正!!!

发表评论

表情:
评论列表 (有 0 条评论,415人围观)

还没有评论,来说两句吧...

相关阅读

    相关 JS实现简易网页计算器

    js实现简易计算器。计算器的布局不像表格那么公正对称,所以布局这块相对比较繁琐,但是也可以通过这来练习一下CSS。 一、实现功能 1. 完成计算器的加减乘除的基本计算功能