add some of the logic
This commit is contained in:
+13
-14
@@ -3,8 +3,6 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8" />
|
<meta charset="UTF-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
||||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
||||||
<link
|
<link
|
||||||
href="https://fonts.googleapis.com/css2?family=Roboto+Mono&display=swap"
|
href="https://fonts.googleapis.com/css2?family=Roboto+Mono&display=swap"
|
||||||
rel="stylesheet"
|
rel="stylesheet"
|
||||||
@@ -17,26 +15,27 @@
|
|||||||
<input type="text" id="display" disabled />
|
<input type="text" id="display" disabled />
|
||||||
|
|
||||||
<button class="clear">C</button>
|
<button class="clear">C</button>
|
||||||
<button>←</button>
|
<button class="backspace">←</button>
|
||||||
<button class="operator">÷</button>
|
<button class="operator">÷</button>
|
||||||
|
|
||||||
<button>7</button>
|
<button class="number">7</button>
|
||||||
<button>8</button>
|
<button class="number">8</button>
|
||||||
<button>9</button>
|
<button class="number">9</button>
|
||||||
<button class="operator">×</button>
|
<button class="operator">×</button>
|
||||||
|
|
||||||
<button>4</button>
|
<button class="number">4</button>
|
||||||
<button>5</button>
|
<button class="number">5</button>
|
||||||
<button>6</button>
|
<button class="number">6</button>
|
||||||
<button class="operator">-</button>
|
<button class="operator">-</button>
|
||||||
|
|
||||||
<button>1</button>
|
<button class="number">1</button>
|
||||||
<button>2</button>
|
<button class="number">2</button>
|
||||||
<button>3</button>
|
<button class="number">3</button>
|
||||||
<button class="operator">+</button>
|
<button class="operator">+</button>
|
||||||
|
|
||||||
<button class="zero">0</button>
|
<button class="large number">0</button>
|
||||||
<button class="operator">=</button>
|
<button class="result">=</button>
|
||||||
</div>
|
</div>
|
||||||
|
<script src="./script.js"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -0,0 +1,83 @@
|
|||||||
|
const display = document.querySelector("#display");
|
||||||
|
let previousNumber = 0;
|
||||||
|
let lastOperation = "";
|
||||||
|
|
||||||
|
function doOperation(operation, numA, numB) {
|
||||||
|
numA = Number(numA);
|
||||||
|
numB = Number(numB);
|
||||||
|
switch (operation) {
|
||||||
|
case "+":
|
||||||
|
return numA + numB;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//Set numbers logic
|
||||||
|
const numbers = document.querySelectorAll(".number");
|
||||||
|
|
||||||
|
numbers.forEach((number) => {
|
||||||
|
number.addEventListener("click", (event) => {
|
||||||
|
updateDisplay(event.target.innerText);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
function updateDisplay(number) {
|
||||||
|
let currentResult = display.value;
|
||||||
|
if (currentResult === "0") {
|
||||||
|
display.value = number;
|
||||||
|
} else {
|
||||||
|
display.value += number;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function reset() {
|
||||||
|
display.value = "0";
|
||||||
|
previousNumber = "0";
|
||||||
|
lastOperation = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set clear button
|
||||||
|
const clearButton = document.querySelector(".clear");
|
||||||
|
clearButton.addEventListener("click", () => {
|
||||||
|
reset();
|
||||||
|
});
|
||||||
|
|
||||||
|
// Set backspace button
|
||||||
|
backspaceButton = document.querySelector(".backspace");
|
||||||
|
backspaceButton.addEventListener("click", () => {
|
||||||
|
let result = display.value;
|
||||||
|
result = result.slice(0, -1);
|
||||||
|
if (result.length === 0) {
|
||||||
|
result = "0";
|
||||||
|
}
|
||||||
|
display.value = result;
|
||||||
|
});
|
||||||
|
|
||||||
|
// Operations
|
||||||
|
const operators = document.querySelectorAll(".operator");
|
||||||
|
operators.forEach((operator) => {
|
||||||
|
operator.addEventListener("click", (event) => {
|
||||||
|
if (lastOperation) {
|
||||||
|
previousNumber = doOperation(
|
||||||
|
lastOperation,
|
||||||
|
previousNumber,
|
||||||
|
display.value,
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
previousNumber = Number(display.value);
|
||||||
|
}
|
||||||
|
|
||||||
|
display.value = "0";
|
||||||
|
lastOperation = event.target.innerText;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
// Result button
|
||||||
|
const resultButton = document.querySelector(".result");
|
||||||
|
resultButton.addEventListener("click", (event) => {
|
||||||
|
if (lastOperation) {
|
||||||
|
display.value = doOperation(lastOperation, previousNumber, display.value);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
reset();
|
||||||
@@ -52,7 +52,7 @@ button:hover {
|
|||||||
grid-column: 1 / 3;
|
grid-column: 1 / 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
.zero {
|
.large {
|
||||||
grid-column: 1 / 4;
|
grid-column: 1 / 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user