javascript 实现简单计算器

效果图:

在这里插入图片描述

css代码

	body {
		display: flex;
		justify-content: center;
		align-items: center;
		min-height: 100vh;
		background-color: #dcf3f3;
	}
	div{
		margin: auto;
		border: 1px solid orange;
		overflow: hidden;
		font-size: 30px;
		border-radius: 10px;
	}
	.div4:active{
		background-color: pink;
	}
	#div1{
		width: 540px;
	}
	#div2{
		width: 100%;
		height: 90px;
	}
	.div3{
		width: 268px;
		height: 80px;
		line-height: 80px;
		text-align: center;
		float: left;
		background-color: #e5eaff;
		
	}
	.div4{
		width: 113px;
		height: 80px;
		line-height: 80px;
		text-align: center;
		float: left;
		margin: 10px;
		border-radius: 50%;
		background-color: #F0FFFF;
	}
	#txt{
		width: 535px;
		height: 60px;
		border: 1px #E5EAFF;
		text-align: right;
		font-size: 30px;
		display: flex;
		justify-content: center;
		align-items: center;
		background-color: #f6fffb;
	}
	#txtresult{
		width: 535px;
		height: 30px;
		border: 1px #E5EAFF;
		text-align: right;
		font-size: 30px;
		display: flex;
		justify-content: center;
		align-items: center;
		background-color: #f6fffb;
	}
	span{
		display: inline-block;
		width: 100%;
		height: 100%;
        cursor: pointer;
	}

html代码

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>计算器</title>
		<link rel="stylesheet" type="text/css" href="./css/Mystyle.css"/>
		<script src="./js/MyStyle.js" type="text/javascript" charset="utf-8"></script>
	</head>
	<body>
		<div id="div1">
			<div id="div2">
				<input type="text" readonly="readonly" id="txt"  />
				<input type="text" readonly="readonly" name="" id="txtresult"  />
			</div>
			<div class="div3">
				<span id='del'>
					del
				</span>
			</div>
			<div class="div3">
				<span id='clear'>clear</span>
			</div>
			<div class="div4">
				<span id='7'>7</span>
			</div>
			<div class="div4">
				<span id='8'>8</span>
			</div>
			<div class="div4">
				<span id='9'>9</span>
			</div>
			<div class="div4">
				<span id='/'>/</span>
			</div>
			<div class="div4">
				<span id='4'>4</span>
			</div>
			<div class="div4">
				<span id='5'>5</span>
			</div>
			<div class="div4">
				<span id='6'>6</span>
			</div>
			<div class="div4">
				<span id='*'>*</span>
			</div>
			<div class="div4">
				<span id='1'>1</span>
			</div>
			<div class="div4">
				<span id='2'>2</span>
			</div>
			<div class="div4">
				<span id='3'>3</span>
			</div>
			<div class="div4">
				<span id='-'>-</span>
			</div>
			<div class="div4">
				<span id='0'>0</span>
			</div>
			<div class="div4">
				<span id='.'>.</span>
			</div>
			<div class="div4">
				<span id='='>=</span>
			</div>
			<div class="div4">
				<span id='+'>+</span>
			</div>
		</div>
	</body>
</html>

js代码

window.onload = function(){
	var one = document.getElementById('1');
	var two = document.getElementById('2');
	var there = document.getElementById('3');
	var four = document.getElementById('4');
	var fives = document.getElementById('5');
	var six = document.getElementById('6');
	var Seven = document.getElementById('7');
	var eight = document.getElementById('8');
	var nine = document.getElementById('9');
	var zero = document.getElementById('0');
	var point = document.getElementById('.');
	var chu = document.getElementById('/');
	var cheng = document.getElementById('*');
	var jian = document.getElementById('-');
	var jia = document.getElementById('+');
	var del = document.getElementById('del');
	var clear = document.getElementById('clear');
	var result = document.getElementById('txt');
	var denyu = document.getElementById('=');
	var results = document.getElementById('txtresult');
	one.onclick = function(){
		if(results.value != ''){
			results.value = '';
		}
		result.value = result.value+1;
	}
	two.onclick = function(){
		if(results.value != ''){
			results.value = '';
		}
		result.value = result.value+2;
	}
	there.onclick = function(){
		if(results.value != ''){
			results.value = '';
		}
		result.value = result.value+3;
	}
	four.onclick = function(){
		if(results.value != ''){
			results.value = '';
		}
		result.value = result.value+4;
	}
	fives.onclick = function(){
		if(results.value != ''){
			results.value = '';
		}
		result.value = result.value+5;
	}
	six.onclick = function(){
		if(results.value != ''){
			results.value = '';
		}
		result.value = result.value+6;
	}
	Seven.onclick = function(){
		if(results.value != ''){
			results.value = '';
		}
		result.value = result.value+7;
	}
	eight.onclick = function(){
		if(results.value != ''){
			results.value = '';
		}
		result.value = result.value+8;
	}
	nine.onclick = function(){
		if(results.value != ''){
			results.value = '';
		}
		result.value = result.value+9;
	}
	zero.onclick = function(){
		if(results.value != ''){
			results.value = '';
		}
		result.value = result.value+0;
	}
	point.onclick = function(){
		if(results.value != ''){
			results.value = '';
		}
		//如果用户连续点击运算符,则以最后的为准
		if(result.value.substring(result.value.length-1)=='.'||result.value.substring(result.value.length-1)=='+'||result.value.substring(result.value.length-1)=='-'||result.value.substring(result.value.length-1)=='*'||result.value.substring(result.value.length-1)=='/'){
			result.value = result.value.substring(0,result.value.length-1)+'.';
			return;
		}
		result.value = result.value+'.';
	}
	chu.onclick = function(){
		if(result.value == ''){
			alert('错误!');
			return;
		}
		if(result.value.substring(result.value.length-1)=='.'||result.value.substring(result.value.length-1)=='+'||result.value.substring(result.value.length-1)=='-'||result.value.substring(result.value.length-1)=='*'||result.value.substring(result.value.length-1)=='/'){
			result.value = result.value.substring(0,result.value.length-1)+'/';
			return;
		}
		result.value = result.value+'/';
	}
	cheng.onclick = function(){
		if(result.value == ''){
			alert('错误!');
			return;
		}
		if(result.value.substring(result.value.length-1)=='.'||result.value.substring(result.value.length-1)=='+'||result.value.substring(result.value.length-1)=='-'||result.value.substring(result.value.length-1)=='*'||result.value.substring(result.value.length-1)=='/'){
			result.value = result.value.substring(0,result.value.length-1)+'*';
			return;
		}
		result.value = result.value+'*';
	}
	jian.onclick = function(){
		if(result.value == ''){
			alert('错误!');
			return;
		}
		if(result.value.substring(result.value.length-1)=='.'||result.value.substring(result.value.length-1)=='+'||result.value.substring(result.value.length-1)=='-'||result.value.substring(result.value.length-1)=='*'||result.value.substring(result.value.length-1)=='/'){
			result.value = result.value.substring(0,result.value.length-1)+'-';
			return;
		}
		result.value = result.value+'-';
	}
	jia.onclick = function(){
		if(result.value == ''){
			alert('错误!');
			return;
		}
		if(result.value.substring(result.value.length-1)=='.'||result.value.substring(result.value.length-1)=='+'||result.value.substring(result.value.length-1)=='-'||result.value.substring(result.value.length-1)=='*'||result.value.substring(result.value.length-1)=='/'){
			result.value = result.value.substring(0,result.value.length-1)+'+';
			return;
		}
		result.value = result.value+'+';
	}
	clear.onclick = function(){
		result.value = '';
		results.value = '';
	}
	del.onclick = function(){
		result.value = result.value.substring(0,result.value.length-1);
	}
	denyu.onclick = function(){
		if(result.value == ''){
			alert("温馨提示:请输入操作数!!");
			result.focus();
			return;
		}
		//定义一个变量存储最终结果
		var answer = '';
		//判断
		if(result.value.substring(result.value.length-1)=='.'||result.value.substring(result.value.length-1)=='+'||result.value.substring(result.value.length-1)=='-'||result.value.substring(result.value.length-1)=='*'||result.value.substring(result.value.length-1)=='/'){
			result.focus();
			alert("温馨提示:请输入完整的表达式!!");
			return;
		}
		
		//计算
		var answer = eval(result.value);
		results.value = answer;
		result.value = '';
	}
	
}
  • 4
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值