diff --git a/calc.css b/calc.css new file mode 100644 index 0000000..4df1ce8 --- /dev/null +++ b/calc.css @@ -0,0 +1,50 @@ +.calc { + width: 350px; + height: 430px; + padding: 15px; + border: 1px solid #cdcdcd; + border-radius: 2px; + background: #BADBAD; + margin: auto; + margin-bottom: 30px; + } +.display { + width: 330px; + height: 50px; + padding: 10px; + margin-bottom: 12px; + background: #F0F8FF; + border: 1px solid #cdcdcd; + border-radius: 2px; + font: 40px Tahoma; + text-align: right; + overflow: hidden; + } +.but { + width: 60px; + height: 60px; + margin: 2px; + border: 1px solid #cdcdcd; + border-radius: 4px; + padding: 10px; + font: 50px Tahoma; + color: #333; + text-align: center; + float: left; + background: #F0F8FF; + cursor: pointer; + } +.but:hover { + background: #CADABA; + } +.but:active { + background: #6B8E23; + } +#div, #mul, #sub, #c { + margin-left: 10px; + margin-right: 0px; + } +#c { + height: 64px; + padding-top: 6px; + } \ No newline at end of file diff --git a/calc.html b/calc.html new file mode 100644 index 0000000..989f56c --- /dev/null +++ b/calc.html @@ -0,0 +1,49 @@ + + + + 4 + + + + + + + Домашка 4 + Калькулятор на Javascript +
+
0
+
7
+
8
+
9
+
c
+
4
+
5
+
6
+
/
+
1
+
2
+
3
+
*
+
=
+
0
+
+
+
-
+
+ + \ No newline at end of file diff --git a/calc.js b/calc.js new file mode 100644 index 0000000..6e46123 --- /dev/null +++ b/calc.js @@ -0,0 +1,29 @@ +$(document).ready(function() { + var expr = ''; + /* Функция вызывается при нажатии на любую кнопку. + На начало работы, в переменной expr хранится + выражение, которое было получено в результате + предыдущей работы функции. + Функция формирует новое значение exp и выводит + его, в конце своей работы. + */ + $('.but').click(function() { + if (expr === 'Division by zero') // После ошибки деления на ноль, вычисления начнутся заново + expr = ''; + var $cur = $(this).html(); // в $cur хранится то, что было нажато + if ($cur === 'c') // если нажат "сброс" + expr = '0' + else if ($cur in ['0','1','2','3','4','5','6','7','8','9']) // если нажата цифра + if (expr == '0') + expr = $cur // если на дисплее 0, заменяем его на нажатую цифру + else + expr += $cur // иначе, просто приписываем нажатую цифру + else if ($cur === '=') // если нажат знак равенства + expr = eval(expr) // то считаем выражение (если это может сделать eval()) + else + expr = expr + ' ' + $cur + ' '; // если нажат знак операции, то красиво, с отступами, выводим его + if (Math.abs(expr) === Infinity) // если в результате вычислений получилась бесконечность, сообщаем об ошибке + expr = 'Division by zero'; + $('.display').html(expr); // выводим новое выражение на дисплей + }); +}); \ No newline at end of file