JavaScript||简易版计算器实现

昨天用JavaScript写了一个网页版的简易计算器,现在将制作过程和最终的源代码分享给大家。

首先:进行页面布局

页面布局相对简单,主要应用了table标签、input标签和button标签,下面直接放代码和效果图

//下面是相关的HTML代码
<div id="divTop">
			<input id="textBox" type="text" value="0" disabled="disabled" />
			<table id="tableTop">
				<tr id="top">
					<td > <button onclick="wuareone(this)"> AC </button> </td>
					<td > <button onclick="wuareone(this)"> Back </button> </td>
					<td > <button onclick="wuareone(this)"> % </button>  </td>
					<td > <button onclick="wuareone(this)"> / </button> </td>
				</tr>
				<tr >
					<td > <button onclick="wuareone(this)"> 7 </button> </td>
					<td > <button onclick="wuareone(this)"> 8 </button  > </td>
					<td > <button onclick="wuareone(this)"> 9 </button  > </td>
					<td class="gree"> <button onclick="wuareone(this)"> X </button> </td>
				</tr>
				<tr >
					<td > <button onclick="wuareone(this)"> 4 </button></td>
					<td > <button onclick="wuareone(this)"> 5 </button> </td>
					<td > <button onclick="wuareone(this)"> 6 </button> </td>
					<td class="gree"> <button onclick="wuareone(this)"> - </button> </td>
				</tr>
				<tr >
					<td  > <button onclick="wuareone(this)"> 1 </button> </td>
					<td  > <button onclick="wuareone(this)"> 2 </button> </td>
					<td  > <button onclick="wuareone(this)"> 3 </button> </td>
					<td class="gree" > <button onclick="wuareone(this)"> + </button> </td>
				</tr>
				<tr >
					<td > <button onclick="wuareone(this)"> 00 </button> </td>
					<td > <button onclick="wuareone(this)"> 0  </button> </td>
					<td > <button onclick="wuareone(this)"> .  </button> </td>
					<td id="sum"  > <button onclick="wuareone(this)"> =  </button> </td>
				</tr>
			</table>
		</div>

代码相对简单易读,对其中的部分标签添加“id"、”class"属性是为了后面样式设计时,可以对特定"id"、“class”值的标签进行样式修改。
而每个按钮后面的οnclick=”wuareone(this)"事件,是对按钮添加点击事件,每次按钮点击时,会将这个按钮的id作为参数传给wuareone(v)方法,从而实现相关功能。
下面是纯HTML代码下的图片:
在这里插入图片描述

接着:进行样式修改

计算器的最终样式我是在网上找了一个相对舒服的计算机成品图,根据其来进行样式修改的,这步也没啥好说的,主要看审美,下面直接放代码和样式修改后的成品图。

//下面是样式修改的相关css代码
body{
	text-align: center;
	width: auto;
	height: auto;
}
div{
	margin: 0 auto;
	width: 280px;
	height: auto;
	background-color: #FFFAAC;
	padding: 8px 4px 8px 4px;
	border-radius: 8px;
}

img{
	height: 16px;
}
button{
	width: 64px;
	height: 32px;
	background-color: #008fb1;
	color: white;
	border-radius: 4px;
	
}
#textBox{
	width: 256px;
	height: 32px;
	text-align: right;
	background-color: white;
	border-radius: 4px;
}
#top button,.gree button{
	background-color: #b5d479;
	color: #6f5021;
}
#sum button{
	background-color: #eab19d;
	color: #6f5021;
}


下面是利用css进行样式设计后的效果图:
在这里插入图片描述

最后:进行功能实现

到目前,计算器的最终样式已经设计完成,紧接着就是功能实现。
前面说过,每次按钮事件发送后,即触发按钮点击事件后,均执行wuareone(v)函数,这个函数是自己定义的,目的是为了实现计算器的功能。
下面放这个函数相关的代码:


//定义一个变量记录运算式子
var willSum = "";			
//获取文本框id
var idText = document.getElementById("textBox");

function wuareone(v){
	if(v.innerText == "AC"){//清零
		willSum = "";
		idText.value = "0";
		
	}else if(v.innerText == "Back"){//回退
		if(idText.value.length > 0){
            willSum = willSum.substring(0, willSum.length-1);
               idText.value = willSum;
           }
		
	}else if(cheak(v.innerText) == true){//小数点和运算符处理
		var ch ;
		if(v.innerText == "X"){//乘法处理
	        ch = "*";				
        }else{
        	ch = v.innerText
        }
		if(ch != willSum.charAt(willSum.length-1) && !cheak(willSum.charAt(willSum.length-1))){
			willSum += ch;
               idText.value = willSum;
		}
								
	}else if(v.innerText == "="){//求值
		window.eval("willSum = " + idText.value);
		
		idText.value = idText.value + "=" + willSum;
		willSum = "";
		
	}else{
		willSum += v.innerText;
           idText.value = willSum;
	}
}

var cheak = function(x){
	var ch = ["+","-","X","/","%","."];
	for(var i = 0; i < ch.length; i++){
		if(ch[i] == x){
			return true;
		}
	}
	return false;
}

这里有一个check函数,相信大家一看就知道这个代码的功能了,它是为了判断按钮对应的值是不是运算符或者小数点,如果是则返回true,不是就返回false。
那么为什么要把这几个值拎出来呢?因为如果使用者按下这些键时,我们都应该判断前面按下的键是不是也属于他们间的一个,如果是,则应该不允许输入,若不是,则可以输入。
其他的类似”=”、“AC”、“Back"键也单独拿出来,是因为他们比较特殊,不能作为最后一个字符,如果最后一个字符是他们间的一个,都应该单独执行对应功能(求结果、清零、回退)。

至此,我们的简易版计算器大致完成了,下面是一些细节的调整:
1)页面刷新时清零

//页面重新加载时清零
function unload(){
	willSum = "";
	idText.value = "0";
}

2)页面报错时清零

//页面报错时清零
window.onerror = function(){
	willSum = "";
	idText.value = "Error";
}

好了,到这,就大功告成了!下面放上动态效果图:

计算器效果图

需要完整源代码的朋友可以点击下面的链接下载噢!有什么问题欢迎大家留言,一起交流学习~
链接://download.csdn.net/download/qq_43543920/12333703

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值