原生js实现计算器
2017-09-29 17:42
429 查看
效果图
逻辑
1、获取被点击的按钮的值。
2、判断这个是数字、运算符号、小数点。
3、运算符号进行运算,小数点和数字push进数组,然后转换为数字。
逻辑
1、获取被点击的按钮的值。
2、判断这个是数字、运算符号、小数点。
3、运算符号进行运算,小数点和数字push进数组,然后转换为数字。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style type="text/css"> *{ margin: 0; padding: 0; } .wrap{ width: 250px; height: 250px; margin: 100px auto; background-color: #A8A8A8; border:10px solid #A8A8A8; border-radius: 5px; box-shadow: 1px 1px 1px #A8A8A8; } .result{ width: 250px; height: 50px; text-align: center; line-height: 50px; background: #EEE685; border-radius:5px 5px 0 0; box-shadow: 1px 1px 1px #A8A8A8; box-shadow: -0.5px -0.5px 0.5px 0.3px #FFF5EE inset; } .box{ width: 250px; height: 200px; background: #969696; position: relative; cursor: pointer; border-radius: 0 0 5px 5px; box-shadow: -0.5px -0.5px 0.5px 0.3px #FFF5EE inset; } .button{ width: 40px; height: 40px; margin: 5px; background: white; float: left; border-radius: 10px; text-align: center; line-height: 40px; font-size: 20px; } .big{ width: 90px; height: 40px; } .spe{ width: 40px; height: 90px; } .position{ position: relative; left: 50px; background-color: orange; } .spe2{ position:relative; top: -50px; line-height: 90px; } .orange{ background-color: orange; } .button:hover{ background-color: rgba(0,0,0,0.6); } </style> </head> <div class="wrap"> <div class="result"></div> <div class="box"> <div class="button big" >c</div> <div class="button">1</div> <div class="button">2</div> <div class="button orange">+</div> <div class="button">3</div> <div class="button">4</div> <div class="button">5</div> <div class="button">6</div> <div class="button orange">-</div> <div class="button">7</div> <div class="button">8</div> <div class="button">9</div> <div class="button position">×</div> <div class="button big">0</div> <div class="button">.</div> <div class="button spe spe2">=</div> <div class="button orange">÷</div> </div> </div> <body> <script type="text/javascript"> var num1=0; var num2='+'; var num3=0; var x=null; var arr=[]; var con=document.getElementsByClassName('result')[0]; for(var i=0;i<17;i++){ var but=document.getElementsByClassName('button')[i]; but.onclick=function(){ x=this.innerHTML; main(); } } function main(){ if(!isNaN(x) || x==='.'){ arr.push(x); con.innerHTML=arr.join(''); }else if(x==='c'){ num1=0; num2='+'; num3=0; x=null; arr=[]; con.innerHTML=num1; }else{ num3=parseFloat(arr.join('')); count(); con.innerHTML=num1; arr=[]; num2=x; } } function count(){ if(num2==='+'){ num1+=num3; } if(num2==='-'){ num1-=num3; } if(num2==='×'){ num1*=num3; } if(num2==='÷'){ num1/=num3; } } </script> </body> </html>
相关文章推荐
- 原生JS实现风箱式demo,并封装了一个运动框架(实例代码)
- 原生JS实现音乐播放器!
- MUI导航栏透明渐变----原生JS实现
- 原生JS实现小小的音乐播放器
- 一个用原生js实现的小游戏---FlappyBird
- javascript - 封装原生js实现ajax
- 原生JS实现平滑回到顶部组件
- 无限循环轮播图之运动框架(原生JS实现)
- 原生的js实现ajax请求
- 原生JS与jQuery对AJAX的实现
- 原生js实现document.ready效果
- js实现简单的计算器
- JS实现Map,利用JS原生特性(上一篇是仿Java)
- 利用原生js实现html5小游戏之打砖块(附源码)
- 原生JS实现点击按钮显示更多内容
- (一)原生JS实现 - 基本类方法
- 基于React.js实现原生js拖拽效果引发的思考
- 原生JS实现图片轮滚效果
- node.js系列(实例):原生node.js实现接收前台post请求提交数据
- 原生JS实现图片的放大镜效果