Jquery: Calculadora com sessionStorage
by rodrigo72
HTML
<html>
<title> Sistema de Cálculo Financeiro </title>
<head>
<meta charset="UTF-8">
<meta name="description" content="Free Web tutorials">
<meta name="keywords" content="HTML,CSS,XML,JavaScript">
<meta name="author" content="John Doe">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
</head>
<body>
<div id="dvCabecalho" class="cabecalho">
<br>
<br>
<tr>
<td><input type="text" id="txtTela" readonly></input>
</td>
</tr>
<table>
<tbody>
<Tr>
<td><input type="button" class="btnFunc" id="btnDiv" value="/"></input>
</td>
<td><input type="button" class="btnFunc" value="*"></input>
</td>
<td><input type="button" class="btnFunc" value="-"></input>
</td>
<td><input type="button" class="btnFunc" value="+"></input>
</td>
</tr>
<Tr>
<td><input type="button" class="btn" value="7"></input>
</td>
<td><input type="button" class="btn" value="8"></input>
</td>
<td><input type="button" class="btn" value="9"></input>
</td>
<td></td>
</tr>
<Tr>
<td><input type="button" class="btn" value="4"></input>
</td>
<td><input type="button" class="btn" value="5"></input>
</td>
<td><input type="button" class="btn" value="6"></input>
</td>
<td></td>
</tr>
<Tr>
<td><input type="button" class="btn" value="1"></input>
</td>
<td><input type="button" class="btn" value="2"></input>
</td>
<td><input type="button" class="btn" value="3"></input>
</td>
<td></td>
</tr>
...
CSS
.cabecalho {
position: absolute;
left: 150px;
/* posiciona a 90px para a esquerda */
top: 40px;
/* posiciona a 70px para baixo */
}
.button {
-webkit-transition-duration: 0.4s;
/* Safari */
transition-duration: 0.4s;
}
.button:hover {
background-color: #4CAF50;
/* Green */
color: white;
}
JavaScript
$(document).ready(function() {
limpaCampos();
// Limpa ou inicializa campos
function limpaCampos() {
sessionStorage.setItem("operadorAtual", "");
sessionStorage.setItem("primeiroValor", "")
sessionStorage.setItem("segundoValor", "")
sessionStorage.setItem("segundaOperacao", "");
$("#txtTela").val('');
}
// Calcula valores, seguindo o operador aritmético informado.
function calculaValores(primeiroValor, segundoValor, operador) {
var valor;
switch (operador) {
case '+':
valor = parseFloat(primeiroValor) + parseFloat(segundoValor);
break;
case '-':
valor = parseFloat(primeiroValor) - parseFloat(segundoValor);
break;
case '*':
valor = parseFloat(primeiroValor) * parseFloat(segundoValor);
break;
case '/':
valor = parseFloat(primeiroValor) / parseFloat(segundoValor);
break;
}
return valor;
}
// Carrega valores à medida que os números são digitados.
function carregaValor(valor) {
if (sessionStorage.getItem("operadorAtual") === '' && sessionStorage.getItem("segundaOperacao") === '') {
if (sessionStorage.getItem("primeiroValor") === '' || sessionStorage.getItem("primeiroValor") === 0) {
sessionStorage.setItem("primeiroValor", valor);
$("#txtTela").val(valor);
} else {
sessionStorage.setItem("primeiroValor", sessionStorage.getItem("primeiroValor") + valor);
$("#txtTela").val(sessionStorage.getItem("primeiroValor"));
}
} else {
if (sessionStorage.getItem("segundoValor") === '' || sessionStorage.getItem("segundoValor") === 0) {
sessionStorage.setItem("segundoValor", valor);
$("#txtTela").val(valor);
} else {
sessionStorage.setItem("segundoValor", sessionStorage.getItem("segundoValor") + valor);
$("#txtTela").val(sessionStorage.getItem("segundoValor"));
}
}
}
// Seta em memória o operador pressionado
function...