js原生计算器demo

HTML:

<section id="model">
		<div class="result"></div>
		<div class="box">
			<button class="button big">C</button>
			<button class="button">1</button>
			<button class="button">2</button>
			<button class="button yellow">+</button>
			<button class="button">3</button>
			<button class="button">4</button>
			<button class="button">5</button>
			<button class="button">6</button>
			<button class="button yellow">-</button>
			<button class="button">7</button>
			<button class="button">8</button>
			<button class="button">9</button>
			<button class="button">0</button>
			<button class="button yellow">×</button>
			<button class="button big">=</button>
			<button class="button">Skin</button>
			<button class="button">Egg</button>
			<button class="button yellow">÷</button>
		</div>
	</section>

css:

<style>
	#model{
			width: 305px;
			height: 360px;
			background-color: #FFF;
			/*background-color: #000;*/
			margin: 0 auto;
			border-radius: 50px;
	}
	.result{
		    width: 295px;
		    height: 80px;
		    margin:15px auto;
		    background-color: #fff;
		    box-shadow: 1px 1px 10px red;
		    border-radius: 20px;
		    font-size: 24px;
		    text-indent: 1em;
		    line-height: 80px;
		    font-weight: 600;
		    animation:myfirst 5s;
			-moz-animation:myfirst 5s; /* Firefox */
			-webkit-animation:myfirst 5s; /* Safari and Chrome */
			-o-animation:myfirst 5s; /* Opera */
	}
	.box{
			margin: 0 10px;
	}
	.button{
			width: 50px;
	    	height: 50px;
	    	border: none;
	    	background-color: #c9c9c9;
	    	margin-right: 2.2px;
	    	margin-bottom: 8px;
	    	box-shadow: 2px 2px 10px blue;
    		border-radius: 10px;
    		cursor: pointer;
    		outline: none; 
	}
	.big{
			width: 105px;
	}
	.yellow{
			background-color:yellow;
	}
	.position {
       		height: 100px;
    		top: -58px;
    		position: relative;
	}
	.button:hover{
			background-color: rgba(0,0,0,0.6);
	}
@-webkit-keyframes myfirst /* Safari and Chrome */
{
	0%   {background:red;}
	25%  {background:yellow;}
	50%  {background:blue;}
	100% {background:green;}
}

@-o-keyframes myfirst /* Opera */
{
	0%   {background:red;}
	25%  {background:yellow;}
	50%  {background:blue;}
	100% {background:green;}
}
</style>

Javascript:

<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<18;i++){
		var but=document.getElementsByClassName('button')[i];
		but.onclick=function(){
			x=this.innerHTML;
			main();
		}
	}
	function main(){
		if(!isNaN(x) || x==='.'){//1:先判断变量x值是否为数字或者.,如果逻辑运算符有一边条件成立,true
			arr.push(x);//2:定义arr数组,然后第一次判断变量x的值可能为数值或者.,添加到arr数组末尾添加元素
			con.innerHTML=arr.join('');//3:arr数组所有元素放入一个字符串复制给变量con
		}else if(x==='C'){//4:判断变量值是否是c,如果是执行if里代码块,如过不是只想下一个判断(注意:字母区分大小写)
			num1=0;
			num2='+';
			num3=0;
			x=null;
			arr=[];
			con.innerHTML=num1;//5:变量赋值,清空数组
		}else{//6:如果不是数值,不是.,不是c,那么执行else代码块。
			num3=parseFloat(arr.join(''));//7:解析字符串,返回一个浮点值,赋值num3
			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>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值