按“=”时如何在textarea上添加历史记录

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (86)

这是简单的Caclucator。如果一个写3 * 3并按“=”需要这个答案在textarea中会太像(3 * 3 = 9)。

function  Git(){
   window.open("https://github.com/thelexa");
}
// hide element
function myFunction() {
  var x = document.getElementById("Cal");
  if (x.style.display === "none") {
    x.style.display = "block";
  } else {
    x.style.display = "none";
  }
}
// display
function runLB(){
		document.case.display.value += "("
}
function runRB(){
		document.case.display.value += ")"
}
function run1(){
	document.case.display.value += "1"
};
function run2(){
	document.case.display.value += "2"
};
function run3(){
	document.case.display.value += "3"
};
function run4(){
	document.case.display.value += "4"
};
function run5(){
	document.case.display.value += "5"
};

function run6(){
    document.case.display.value += "6"
};
function run7(){
	document.case.display.value += "7"
};
function run8(){
	document.case.display.value += "8"
};
function run9(){
	document.case.display.value += "9"
};
function run0(){
	document.case.display.value += "0"
};
function runPlus(){
	document.case.display.value += "+"
};
function runMinus(){
	document.case.display.value += "-"
};
function runDivide(){
	document.case.display.value += "/"
};
function runMultiply(){
    document.case.display.value += "*"
};
function runComma(){
	document.case.display.value += "."
};
function runBack(){
	var val = document.case.display.value.slice(0, -1);
    document.case.display.value = val;
};
function runC(){
	document.case.display.value = ""
};
function runEquals() {
        if (document.case.display.value == "") {
        	document.case.display.value = ""
        } else  {
	var equals = eval(document.case.display.value)
	document.case.display.value = equals;
}
}

#wrapper{display:flex;}

html {
background:
	linear-gradient(rgba(196, 102, 0, 0.6), rgba(155, 89, 182, 0.6));
}
ul {
	list-style: none;
}
body {
	width: 500px;

}
#Git{
  position: absolute;
  color: #fff;
  background: rgba(155, 89, 182, 0.6);
  left: 94.5%;
  font-size: 20px;
  border-radius: 30px;
  width: 100px;
  height: 60px;
  font-family: sans-serif;
  text-decoration: none;
  box-sizing: border-box;
  background-size: 400%;

}
#Note {
margin-bottom: 35px;
 transform: translate(0,50%);
 width: 400px;
 height: 60px;
 line-height: 60px;
 color: #fff;
 font-size: 30px;
 text-transform: uppercase;
 text-decoration: none;
 font-family: sans-serif;
 box-sizing: border-box;
 background:linear-gradient(rgba(196, 102, 0, 0.9), rgba(155, 89, 182, 0.9));
 background-size: 400%;
 border-radius: 30px;
 z-index: 1;
}
#Note:hover
{
 animation: animate 5s linear infinite;
}
@keyframes animate
{
 0%
 {
  background-position: 0%;
 }
 100%
 {
  background-position: 500%;
 }
}
#Note:before
{
 content: '';
 position: absolute;
 top: -5px;
 left: -5px;
 right: -5px;
 bottom: -5px;
 z-index: -1;
 background: linear-gradient(90deg, #03a9f4, #f441a5, #ffeb3b, #03a9f4);
 background-size: 400%;
 border-radius: 40px;
 opacity: 0;
 transition: 0.5s;
}
#Note:hover:before
{
 filter: blur(20px);
 opacity:1;
 animation: animate 5s linear infinite;
}
{}

form {
	background:linear-gradient(rgba(196, 102, 0, 0.6), rgba(155, 89, 182, 0.6));
	text-align: center;
	padding: 7px;
	align-content: center;
	border-radius: 10px;
    border: 5px solid rgba(196, 102, 0, 0.6);

}
#display {
	width: 98%;
	height: 50px;
	text-align: right;
	font-size: 3rem;
    margin: 5px;
	border: 5px solid rgba(196, 102, 0, 0.9);

}
.digit {
	font-size: 2rem;
	background-color: 	#f8f8f8;
	height: 55px;
	width: 20%;
    border: 1px solid #c6c6c6;
	display: inline-block;
	box-shadow: 1px 1px 1px;
	color:#444;
	font-family: Roboto-Regular,helvetica,arial,sans-serif;
	margin: 2px;
	opacity: 0.9;
}
.oper {
	font-size: 2rem;
	background-color: #d6d6d6;
	height: 55px;
	width: 20%;
	color: #444;
	display: inline-block;
	margin: 2px;
	box-shadow: 0 1px 1px;
	font-family: Roboto-Regular,helvetica,arial,sans-serif;
	opacity: 0.9;
}
#equal {
	background-color:rgba(196, 102, 0, 0.6) ;
	color: white;
	width: 41.5%;


}
textarea {
  display: block;
  resize: none;
  width: 400px;
  height: 450px;
  max-width: 400px;
  max-height: 350px;
  margin-top: 5px;
  font-size: 25px;
  border: 3px solid rgba(196, 102, 0, 0.9);


}
#result {
margin-left: 5px;
display:block
}

<html>
<head>
    <title>Calculator Project</title>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
     <link rel="stylesheet" href="main.css" type="text/css">
        <script src="main.js" type="text/javascript"></script>
</head>

<body>


<button type="button" id="Git" onclick="Git()"> GitHub</button>
<div id="wrapper">
<form name="case" > <!--Numbers -->
  <input name="display" id="display" value="">
    <input type="button" class="oper" value="(" onclick="runLB()">
    <input type="button" class="oper" value=")" onclick="runRB()">
    <input type="button" id="back" 	class="oper" 	value="CE" onclick="runBack()">
   <input type="button" id="divide" 	class="oper" 	value="÷" onclick="runDivide()" >

    <input type="button" class="digit" value="1" onclick="run1()">
    <input type="button" class="digit" value="2" onclick="run2()">
    <input type="button" class="digit" value="3" onclick="run3()">
    <input type="button" id="multiply" 	class="oper" 	value="×" onclick="runMultiply()">

    <input type="button" class="digit" value="4" onclick="run4()">
    <input type="button" class="digit" value="5" onclick="run5()">
    <input type="button" class="digit" value="6" onclick="run6()">
    <input type="button" id="minus" 	class="oper" 	value="-" onclick="runMinus()" >

    <input type="button" class="digit" value="7" onclick="run7()">
    <input type="button" class="digit" value="8" onclick="run8()">
    <input type="button" class="digit" value="9" onclick="run9()">
    <input type="button" id="plus" 	class="oper" 	value="+"  onclick="runPlus()">

    <input type="button" class="digit" value="0" onclick="run0()">
    <input type="button" id="comma" class="digit" value="." onclick="runComma()">
    <input type="button" id="equal" 	class="oper"	value="=" onclick="runEquals()">

<div id="Cal">
<textarea  id ="result1" placeholder="Note"></textarea>
</div>
<div id="newpos">
<button type="button" id="Note" onclick="myFunction()"> Note</button></div>
</form>
<div id="new">
<textarea  id="result" placeholder="History"></textarea></div>
</div>
</body>

这是按“=”时需要的样子。每个答案都会对我有所帮助,或者代码的任何想法看起来更好,并提升我的技能。谢谢。

//看起来你的帖子主要是代码; 请添加更多细节。

提问于
用户回答回答于
var queue = [];// store key history

function getHistory() {
    var str = ''
    for (var i = 0; i < queue.length; i++)
        str += queue[i];
    return str;
}


...
function run7() {
    queue.push(7) // store key history
    document.case.display.value += "7"
};

function runMinus() {
    queue.push('-') // store key history
    document.case.display.value += "-"
};
...



function runEquals() {
    if (document.case.display.value == "") {
        document.case.display.value = ""
    } else {
        var equals = eval(document.case.display.value)
        document.case.display.value = equals;
        var resultWithHistory = getHistory() + ' = ' + equals;
        queue = []; // clear history
        display(resultWithHistory)

    }
}

所属标签

可能回答问题的人

  • 人生的旅途

    10 粉丝484 提问5 回答
  • 无聊至极

    4 粉丝504 提问5 回答
  • 嗨喽你好

    7 粉丝480 提问4 回答
  • 富有想象力的人

    4 粉丝0 提问4 回答

扫码关注云+社区

领取腾讯云代金券