Calculator Tools Calculator Tools
Create

Fun Calculator

Nov 22, 2023

About this app

A simple and colorful calculator that can add, subtract, and divide.

Fun Calculator 1 2 3 + 4 5 6 - 7 8 9 / 0 . AC =

Related apps

Put this on your site

Source

                    <!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1">

<title>Fun Calculator</title>
<meta name="description" content="A simple and colorful calculator that can add, subtract, and divide.">
<meta name="keywords" content="calculator, add, subtract, divide, simple, colorful">

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<link href="https://fonts.googleapis.com/css?family=Fredoka+One&display=swap" rel="stylesheet">
<style>
body {
font-family: 'Fredoka One', cursive;
background: linear-gradient(135deg, #f6d365 0%, #fda085 100%);
}

#main-container {
margin-top: 50px;
}

.calculator {
text-align: center;
background: white;
padding: 20px;
border-radius: 10px;
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
}

.calculator-screen {
width: 100%;
height: 50px;
text-align: right;
border: none;
padding: 10px;
margin-bottom: 20px;
font-size: 24px;
box-shadow: inset 0 -5px 5px rgba(0,0,0,0.2);
}

.calculator-keys button {
width: 60px;
height: 60px;
margin: 5px;
border: none;
border-radius: 5px;
background: #e0e1e6;
font-size: 20px;
color: #333;
box-shadow: 0 5px 5px rgba(0,0,0,0.2);
cursor: pointer;
}

.calculator-keys button:active {
box-shadow: inset 0 5px 5px rgba(0,0,0,0.2);
}

.equal-sign {
background: #fda085;
}
</style>

<script type="text/javascript">
try {
document.addEventListener("DOMContentLoaded", function() {
const calculator = {
displayValue: '0',
firstOperand: null,
waitingForSecondOperand: false,
operator: null,
};

function inputDigit(digit) {
const { displayValue, waitingForSecondOperand } = calculator;

if (waitingForSecondOperand === true) {
calculator.displayValue = digit;
calculator.waitingForSecondOperand = false;
} else {
calculator.displayValue = displayValue === '0' ? digit : displayValue + digit;
}
}

function handleOperator(nextOperator) {
const { firstOperand, displayValue, operator } = calculator;
const inputValue = parseFloat(displayValue);

if (operator && calculator.waitingForSecondOperand) {
calculator.operator = nextOperator;
return;
}

if (firstOperand == null && !isNaN(inputValue)) {
calculator.firstOperand = inputValue;
} else if (operator) {
const result = calculate(firstOperand, inputValue, operator);
calculator.displayValue = String(result);
calculator.firstOperand = result;
}

calculator.waitingForSecondOperand = true;
calculator.operator = nextOperator;
}

function calculate(firstOperand, secondOperand, operator) {
if (operator === '+') {
return firstOperand + secondOperand;
} else if (operator === '-') {
return firstOperand - secondOperand;
} else if (operator === '/') {
return firstOperand / secondOperand;
}

return secondOperand;
}

function updateDisplay() {
const display = document.querySelector('.calculator-screen');
display.value = calculator.displayValue;
}

updateDisplay();

const keys = document.querySelector('.calculator-keys');
keys.addEventListener('click', (event) => {
const { target } = event;
if (!target.matches('button')) {
return;
}

if (target.classList.contains('operator')) {
handleOperator(target.value);
updateDisplay();
return;
}

if (target.classList.contains('decimal')) {
inputDecimal(target.value);
updateDisplay();
return;
}

if (target.classList.contains('all-clear')) {
resetCalculator();
updateDisplay();
return;
}

inputDigit(target.value);
updateDisplay();
});

function inputDecimal(dot) {
if (calculator.waitingForSecondOperand === true) {
calculator.displayValue = '0.';
calculator.waitingForSecondOperand = false;
return;
}

if (!calculator.displayValue.includes(dot)) {
calculator.displayValue += dot;
}
}

function resetCalculator() {
calculator.displayValue = '0';
calculator.firstOperand = null;
calculator.waitingForSecondOperand = false;
calculator.operator = null;
}
});
} catch (error) {
throw error;
}
</script>
</head>
<body>
<div id="main-container" class="container">
<div class="calculator">
<input type="text" class="calculator-screen" value="0" disabled>

<div class="calculator-keys">
<button type="button" class="btn btn-light" value="1">1</button>
<button type="button" class="btn btn-light" value="2">2</button>
<button type="button" class="btn btn-light" value="3">3</button>
<button type="button" class="btn btn-light operator" value="+">+</button>

<button type="button" class="btn btn-light" value="4">4</button>
<button type="button" class="btn btn-light" value="5">5</button>
<button type="button" class="btn btn-light" value="6">6</button>
<button type="button" class="btn btn-light operator" value="-">-</button>

<button type="button" class="btn btn-light" value="7">7</button>
<button type="button" class="btn btn-light" value="8">8</button>
<button type="button" class="btn btn-light" value="9">9</button>
<button type="button" class="btn btn-light operator" value="/">/</button>

<button type="button" class="btn btn-light" value="0">0</button>
<button type="button" class="btn btn-light decimal" value=".">.</button>
<button type="button" class="btn btn-light all-clear" value="all-clear">AC</button>
<button type="button" class="btn btn-light equal-sign operator" value="=">=</button>
</div>
</div>
</div>
</body>
</html>