html+css+js实现简易计算器

 效果:

虽然还有一点bug,但问题不大

 代码分享:html部分

	<body>
		<div class="box">
			<div class="title">小谢计算器</div>
			<hr class="hr1">
			<div class="xsq">
				<input type="text" id="xsq" value="" disabled="disabled" />
			</div>
			<div class="nubList">
				<div class="nubBox" onclick="getnub('1')">1</div>
				<div class="nubBox" onclick="getnub('2')">2</div>
				<div class="nubBox" onclick="getnub('3')">3</div>
				<div class="nubBox C" onclick="qingchu()">清除</div>
				<div class="nubBox AC" onclick="tuige()">退格</div> 
			</div>
			<div class="nubList">
				<div class="nubBox" onclick="getnub('4')">4</div>
				<div class="nubBox" onclick="getnub('5')">5</div>
				<div class="nubBox" onclick="getnub('6')">6</div>
				<div class="nubBox suanfa" onclick="getyuns('+')">+</div>
				<div class="nubBox suanfa" onclick="getyuns('-')">-</div>
			</div>
			<div class="nubList">
				<div class="nubBox" onclick="getnub('7')">7</div>
				<div class="nubBox" onclick="getnub('8')">8</div>
				<div class="nubBox" onclick="getnub('9')">9</div>
				<div class="nubBox suanfa" onclick="getyuns('*')">*</div>
				<div class="nubBox suanfa" onclick="getyuns('/')">/</div>
			</div>
			<div class="nubList">
				<div class="nubBox" onclick="getnub('0')">0</div>
				<div class="nubBox" onclick="getnub('00')">00</div>
				<div class="nubBox suanfa" onclick="getnub('.')">.</div>
				<div class="nubBox suanfa" onclick="getyuns('%')">%</div>
				<div class="nubBox dengyu" onclick="yunsuan()">=</div>
			</div>
			<hr class="hr2">
		</div>
	</body>

代码分享:css部分

		<style type="text/css">
			*{
				margin: 0;				/* 内边距为0 */
				padding: 0;				/* 外边距为0 */
			}
			.box{
				width: 360px;
				height: 378px;
				margin: 40px auto;		/* 内边距上下为0,左右居中 */
				border-radius: 5px;		/* 圆角 5 像素 */
				background: #9ED2E7;	/* 背景颜色 */
				box-shadow: 3px 5px 0 #649CAE,3px 5px 20px #000000;		
                                        /* 投影:左右漂移3px,下5px,扩展为0 */
			}
			.title{
				text-align: center;		/* 字体居中 */
				color: #FFFFFF;			/* 颜色 白*/
				font-size: 25px;		/* 字体大小24px */
				font-weight: bold;		/* 字体加粗 */
			}
			.hr1{
				width: 320px;			/* 横线长度 */
				margin: 0 auto;			/* 居中 */
			}
			.xsq{
				width: 300px;			/* 显示器宽 */
				height: 45px;			/* 显示器高 */
				background: #7AA8B8;	/* 显示器背景颜色 */
				box-shadow: 0 -5px 0 #63869A;	/* 显示器投影颜色 */
				margin: 0 auto;			/* 居中 */
				margin-top: 10px;	
				border-radius: 5px;		/* 圆角 */
			}
			.xsq>input{
				width: 100%;
				height: 100%;
				background: none;
				border: none;
				font-size: 24px;
				color: #fff;
				padding-left: 5px;
				font-weight: bold;
				text-shadow: 3px 3px 0 #63869A;
			}
			.nubBox{
				width: 60px;
				height: 40px;
				background: #fff;
				border-radius: 5px;
				box-shadow: 0 5px 0 #63869A;
				font-size: 24px;
				text-align: center;
				line-height: 40px;			
				font-weight: bold;			/* 字体加粗 */
				cursor: pointer;			/* 显示小手 */
			}
			.nubList{
				display: flex;
				justify-content: space-between;
				width: 320px;
				margin: 0 auto;
				margin-top: 15px;
			}
			.hr2{
				width: 100px;
				height: 3px;
				margin: 0 auto;
				margin-top: 30px;
			}
			.suanfa{
				background: #82b1ca;
				box-shadow: 0 5px 0 #63869A;
			}
			.C{
				background:#ff5500 ;
				box-shadow: 0 5px 0 #d64700;
			}
			.AC{
				background: #00FFFF;
				box-shadow: 0 5px 0 #00b6b6;
			}
			.dengyu{
				background: #aa5500;
				box-shadow: 0 5px 0 #874300;
			}
		</style>

代码分享:js部分

<script type="text/javascript">
	var yunsuanf = ''	
	
	// 获取点击按钮的值
	function getnub(a){
		$("#xsq").val($("#xsq").val()+a);
		
		yunsuanf = '';
	
	}
	// 运算
	function yunsuan(){
		var str =eval($("#xsq").val());
		$("#xsq").val(str);
	}
	// 清除
	function qingchu(){
		$("#xsq").val(" ");
	}
	// 退格
	function tuige(){
		// substring(开始坐标,结束坐标)  截取字符串
		// 获取显示器内容
		// length 获取数据长度
		var a = $("#xsq").val();		
		var b = a.substring(0,a.length-1);
		$("#xsq").val(b);
	}
	//获取运算符
	function getyuns(a){
		if(yunsuanf == ''){
			$("#xsq").val($("#xsq").val()+a);
			yunsuanf = a;
		}
		else{
			tuige();
			$("#xsq").val($("#xsq").val()+a);
			yunsuanf = a;
		} 
		
	}
</script>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值