初学H5,不知道做什么来练手,就做些小工具吧
今天知道一个函数eval(),感觉是神器,不过官方说这个已经很少用到了
用它来做个计算器还是可以的吧~
几个点:
1、画圆圈,border-radius:100%;
2、点击时改变CSS效果,.btnItem:active{}
3、内容换行,word-wrap:break-word;
4、字符串删除,inputtext.substring( 0 , inputtext.length-1 )
5、字符串转数字,parseFloat(textresult)
代码如下,复制粘贴就可以用啦:
<!DOCTYPE html>
<html>
<head>
<title>计算器!</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=1, user-scalable=no">
</head>
<style>
html,body{
width:100%;
margin:0;
padding:0;
font-family:"微软雅黑";
}
.inputShow{
width:100%;
height:6rem;
background-color:#222222;
color:#FFFFFF;
word-wrap:break-word;
overflow-y:scroll;
font-size:21px;
letter-spacing:2px;
margin-top:0.5rem;
}
#ResultShow{
padding-top:1.5rem;
margin-right:0.5rem;
margin-left:0.5rem;
height:2rem;
line-height:2rem;
font-size: 26px;
font-weight:bold;
color:#EE9A00;
overflow:hidden;
}
.btnItem{
width:60px;
height:60px;
line-height:60px;
border-radius:100%;
background-color:#222222;
text-align:center;
font-size:21px;
color:#FFFFFF;
margin:5px;
}
.btnItem:active{
opacity:0.7;
}
.numItem{
margin-top:30px;
padding-bottom:25px;
width:100%;
max-width:280px;
display:flex;
flex-wrap:wrap;
}
</style>
<body>
<div style="width:95%;max-width: 360px;background-color:#EAEAEA;margin:auto;">
<div class="inputShow"><div id="inputtext" style="padding:1rem;">0</div></div>
<center>
<div id="ResultShow"></div>
<div class="numItem">
<div class="btnItem" οnclick="clearinput()">AC</div>
<div class="btnItem" οnclick="addinput(this.innerHTML)">(</div>
<div class="btnItem" οnclick="addinput(this.innerHTML)">)</div>
<div class="btnItem" style="background-color:#EE9A00" οnclick="addinput(this.innerHTML)">+</div>
<div class="btnItem" οnclick="addinput(this.innerHTML)">1</div>
<div class="btnItem" οnclick="addinput(this.innerHTML)">2</div>
<div class="btnItem" οnclick="addinput(this.innerHTML)">3</div>
<div class="btnItem" style="background-color:#EE9A00" οnclick="addinput(this.innerHTML)">-</div>
<div class="btnItem" οnclick="addinput(this.innerHTML)">4</div>
<div class="btnItem" οnclick="addinput(this.innerHTML)">5</div>
<div class="btnItem" οnclick="addinput(this.innerHTML)">6</div>
<div class="btnItem" style="background-color:#EE9A00" οnclick="addinput(this.innerHTML)">×</div>
<div class="btnItem" οnclick="addinput(this.innerHTML)">7</div>
<div class="btnItem" οnclick="addinput(this.innerHTML)">8</div>
<div class="btnItem" οnclick="addinput(this.innerHTML)">9</div>
<div class="btnItem" style="background-color:#EE9A00" οnclick="addinput(this.innerHTML)">÷</div>
<div class="btnItem" οnclick="addinput(this.innerHTML)">0</div>
<div class="btnItem" οnclick="addinput(this.innerHTML)">.</div>
<div class="btnItem" style="background-color:#CD3333;" οnclick="deleteinput()">←</div>
<div class="btnItem" style="background-color:#008B45;" οnclick="showresult()">=</div>
</div>
</center>
<div>
</body>
<script>
var inputtext = "";
var textresult = "";
function addinput(e){
if(e == "÷"){e = "/"}else if(e == "×"){e = "*"}
if(textresult == ""){
if(e == "." && inputtext == ""){
inputtext = "0."
}else{
inputtext += e;
}
}else{
if( e=="+"||e=="-"||e=="*"||e=="/" && e!="." ){ //如果输入的是运算符,取之前的运算结果,继续计算
//var text = textresult
inputtext = textresult + e;
textresult = "";
}else{ //如果不是运算符,结果置空,重新输入
textresult = "";
if(e == "."){
inputtext = "0."
}else{
inputtext = e;
}
}
}
document.getElementById("inputtext").innerHTML = inputtext;
};
function deleteinput(){
if(inputtext == ""){
document.getElementById("inputtext").innerHTML = "0";
}else{
inputtext = inputtext.substring( 0,inputtext.length-1 )
document.getElementById("inputtext").innerHTML = inputtext;
}
};
function showresult(){
if(inputtext == ""){
document.getElementById("ResultShow").innerHTML = "0";
}else{
try{
textresult = eval(inputtext);
if(textresult == "Infinity"){
document.getElementById("ResultShow").innerHTML = "输入有误";
textresult = "";
}else{
textresult = parseFloat(textresult);
document.getElementById("ResultShow").innerHTML = textresult; //超大数字使用科学计数法
};
}catch(err){
document.getElementById("ResultShow").innerHTML = "输入有误";
textresult = "";
}
}
};
function clearinput(){
inputtext = "";
textresult = "";
document.getElementById("inputtext").innerHTML="0";
document.getElementById("ResultShow").innerHTML =textresult;
};
</script>
</html>