First push
This commit is contained in:
commit
80bec68a28
100
index.html
Normal file
100
index.html
Normal file
@ -0,0 +1,100 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Calculator</title>
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="ressources/materialize.min.css">
|
||||
<script src="ressources/jquery-3.3.1.min.js"></script>
|
||||
<script src="ressources/materialize.min.css"></script>
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="ressources/index.css">
|
||||
<script src="ressources/index.js"></script>
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<div class="container">
|
||||
<div class="display-container">
|
||||
|
||||
<div class="display">
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="buttons-container">
|
||||
|
||||
<div class="buttons-numbers">
|
||||
<div class="button-input">
|
||||
<span>9</span>
|
||||
</div>
|
||||
<div class="button-input">
|
||||
<span>8</span>
|
||||
</div>
|
||||
<div class="button-input">
|
||||
<span>7</span>
|
||||
</div>
|
||||
<div class="button-input">
|
||||
<span>6</span>
|
||||
</div>
|
||||
<div class="button-input">
|
||||
<span>5</span>
|
||||
</div>
|
||||
<div class="button-input">
|
||||
<span>4</span>
|
||||
</div>
|
||||
<div class="button-input">
|
||||
<span>3</span>
|
||||
</div>
|
||||
<div class="button-input">
|
||||
<span>2</span>
|
||||
</div>
|
||||
<div class="button-input">
|
||||
<span>1</span>
|
||||
</div>
|
||||
<div class="button-input">
|
||||
<span>.</span>
|
||||
</div>
|
||||
<div class="button-input">
|
||||
<span>0</span>
|
||||
</div>
|
||||
<div class="button-input" style="background-color: #d00506">
|
||||
<span>=</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="buttons-operators">
|
||||
|
||||
<div class="parenthesis">
|
||||
<div class="button-input">
|
||||
<span>(</span>
|
||||
</div>
|
||||
<div class="button-input">
|
||||
<span>)</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="button-input">
|
||||
<span>/</span>
|
||||
</div>
|
||||
<div class="button-input">
|
||||
<span>*</span>
|
||||
</div>
|
||||
<div class="button-input">
|
||||
<span>-</span>
|
||||
</div>
|
||||
<div class="button-input">
|
||||
<span>+</span>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
110
ressources/index.css
Normal file
110
ressources/index.css
Normal file
@ -0,0 +1,110 @@
|
||||
body, html {
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.button-input {
|
||||
position: relative;
|
||||
color: white;
|
||||
font-size: 40px;
|
||||
display: inline-block;
|
||||
width: 33.333333333333333%;
|
||||
text-align: center;
|
||||
height: 25%;
|
||||
}
|
||||
|
||||
.buttons-operators .button-input {
|
||||
width: 100%;
|
||||
height: 20%;
|
||||
}
|
||||
|
||||
.button-input span {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
}
|
||||
|
||||
.parenthesis {
|
||||
width: 100%;
|
||||
height: 20%;
|
||||
}
|
||||
|
||||
.parenthesis .button-input {
|
||||
width: 50%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.button-input.parenthesis div {
|
||||
display: inline-block;
|
||||
width: 50%;
|
||||
position: relative;
|
||||
height: 100%;
|
||||
font-size: 40px;
|
||||
}
|
||||
|
||||
.container {
|
||||
height: 100%;
|
||||
background: #1F1F1F;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.buttons-container {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
display: block;
|
||||
font-size: 0;
|
||||
width: 100%;
|
||||
height: 60%;
|
||||
line-height: 0;
|
||||
}
|
||||
|
||||
.buttons-numbers {
|
||||
display: inline-block;
|
||||
width: 75%;
|
||||
height: 100%;
|
||||
background: #000;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.buttons-operators {
|
||||
display: inline-block;
|
||||
width: 25%;
|
||||
height: 100%;
|
||||
background: #232323;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Affichage */
|
||||
|
||||
.display-container {
|
||||
height: 40%;
|
||||
top: 0;
|
||||
position: absolute;
|
||||
padding: 20% 0;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.display {
|
||||
text-align: right;
|
||||
color: white;
|
||||
font-size: 70px;
|
||||
position: absolute;
|
||||
width: 94%;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
overflow: auto;
|
||||
transform: translate(-50%, -50%);
|
||||
}
|
||||
|
||||
.display.big {
|
||||
font-size: 60px;
|
||||
}
|
||||
|
||||
.display.medium {
|
||||
font-size: 50px;
|
||||
}
|
||||
|
||||
.display.small {
|
||||
font-size: 40px;
|
||||
}
|
54
ressources/index.js
Normal file
54
ressources/index.js
Normal file
@ -0,0 +1,54 @@
|
||||
let operators = [
|
||||
'+',
|
||||
'-',
|
||||
'/',
|
||||
'*',
|
||||
'.'
|
||||
];
|
||||
let operation = "";
|
||||
|
||||
function calculate() {
|
||||
let $display = $( ".display" );
|
||||
|
||||
try {
|
||||
let result = eval( operation );
|
||||
|
||||
$display.text( result );
|
||||
operation = result.toString();
|
||||
} catch (e) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
$( document ).on( "keypress", "#main-input", function ( e ) {
|
||||
let char = e.charCode;
|
||||
let $this = $( this );
|
||||
|
||||
if ( char === 13 ) {
|
||||
calculate( $this.val() );
|
||||
} else if ( operators.indexOf( String.fromCharCode( char ) ) >= 0 ) {
|
||||
// Operators
|
||||
if ( operators.indexOf( $this.val().split("").pop() ) >= 0 ) {
|
||||
e.preventDefault();
|
||||
}
|
||||
} else if ( ( char >= 48 && char <= 57 ) || char === 40 || char === 41 ) {
|
||||
// Number
|
||||
} else {
|
||||
e.preventDefault();
|
||||
}
|
||||
console.log( char );
|
||||
} );
|
||||
|
||||
$( document ).on( "click", ".button-input", function () {
|
||||
let $elem = $( this );
|
||||
let input = $elem.find( "span" ).html();
|
||||
let $display = $( ".display" );
|
||||
|
||||
if ( input === "=" ) {
|
||||
calculate();
|
||||
} else {
|
||||
operation += $elem.find( "span" ).html();
|
||||
$display.text( operation );
|
||||
$display.scrollLeft( 1000 );
|
||||
}
|
||||
} );
|
2
ressources/jquery-3.3.1.min.js
vendored
Normal file
2
ressources/jquery-3.3.1.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
13
ressources/materialize.min.css
vendored
Normal file
13
ressources/materialize.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
6
ressources/materialize.min.js
vendored
Normal file
6
ressources/materialize.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue
Block a user