JavaScript,ES6语法制作简易计算器

230 阅读1分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

1、先看效果:

在这里插入图片描述 里面所需要的背景图片:在这里插入图片描述

2、HTML主体部分

<div id="counter">
	<h2>简易计算器</h2>
	<div id="counter_content">
		<h3><input id="input1" type="text" value="0" disabled="disabled" ></h3>
		<ul>
			<li onclick="addStr(7)">7</li>
			<li onclick="addStr(8)">8</li>
			<li onclick="addStr(9)">9</li>
			<li onclick="addStr('+')">+</li>
			<li onclick="addStr(4)">4</li>
			<li onclick="addStr(5)">5</li>
			<li onclick="addStr(6)">6</li>
			<li onclick="addStr('-')">-</li>
			<li onclick="addStr(1)">1</li>
			<li onclick="addStr(2)">2</li>
			<li onclick="addStr(3)">3</li>
			<li onclick="addStr('*')">×</li>
			<li onclick="addStr(0)">0</li>
			<li onclick="clears()">C</li>
			<li onclick="calc()">=</li>
			<li onclick="addStr('/')">÷</li>
		</ul>
	</div>
	<div id="bg"></div>
</div>

3、css样式部分:

* {
    padding: 0;
    margin: 0;
}
li {
    list-style: none;
}
#counter {
    width: 500px;
    height: 320px;
    margin: 50px auto 0;
    position: relative;
    border: 1px solid green;
}
#counter h2 {
    line-height: 30px;
    padding-left: 15px;
    font-size: 14px;
    font-family: arial;
    color: #000;
}

#bg {
    width: 280px;
    height: 200px;
    border: 3px solid #680023;
    background: #990033;
    filter: alpha(opacity=80);
    opacity: 0.8;
    position: absolute;
    left: 50%;
    top: 60px;
    margin-left: -141px;
}
#counter_content {
    width: 250px;
    position: absolute;
    top: 80px;
    left: 130px;
    z-index: 1;
}
#counter_content h3 {
    margin-bottom: 10px;
}
#counter_content h3 input {
    border: none;
    width: 223px;
    height: 30px;
    line-height: 30px;
    padding: 0 10px;
    background: url(../images/ico.png) no-repeat;
    text-align: right;
    color: #333;
    font-size: 14px;
    font-weight: bold;
}
#counter_content ul {
    width: 250px;
}
#counter_content li {
    width: 60px;
    height: 30px;
    line-height: 30px;
    float: left;
    background: url(../images/ico.png) no-repeat -303px 0;
    text-align: center;
    color: #fff;
    cursor: pointer;
    margin: 0 1px 4px 0;
}
#counter_content .active {
    background: url(../images/ico.png) no-repeat -243px 0;
}
#counter p {
    width: 500px;
    position: absolute;
    bottom: 20px;
    left: 0;
    color: #ff3333;
    text-align: center;
    font-size: 12px;
}

4、js部分

<script>
	function addStr(s){
		//获取input  给他添加字符
		let inp = document.getElementById("input1");
		inp.value = inp.value + s;
		//inp 现在的值等于原来的值+s

		//去除首个零
		let inpv = inp.value;
		let arr = inpv.split("");
			if(arr[0] == "0"){
				arr.shift();
				inpv = arr.join("");
				inp.value = inpv;
			}	
	}
	//进行计算
	function calc(){
		let inp = document.getElementById("input1");
		
		//这里用到了eval函数
		let val = eval(inp.value);
		//把文本框里面的值当js计算一下赋值给val
		inp.value = val;
	}
	//归零键
	function clears(){
		let inp = document.getElementById("input1");	
		inp.value = "0";
	}
</script>