Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var Calculator = function(el){
- var input = el.getElementsByTagName('input')[0];
- var buts = el.getElementsByTagName('button');
- var keybOperations = {43:'+', 47:'/', 42:'*', 45:'-', 99:'C', 61:'='};
- var prevOperation = null;
- var prevNumber = null;
- var operationClicked = false;
- input.value=0;
- for(var i = 0 ; i < buts.length;i++){
- buts[i].onclick= press
- }
- input.onblur = function() {
- input.focus();
- };
- input.onkeypress = function(but) {
- but.preventDefault();
- console.log(but.charCode);
- for(key in keybOperations) {
- if (key == but.charCode){
- operationHandler(keybOperations[key]);
- }
- }
- if( 47 < but.charCode && but.charCode < 58 || but.charCode == 46) {
- var butNum = String.fromCharCode(but.keyCode);
- numberHandler(butNum)
- }
- };
- function press(){
- var symbol = this.innerText;
- if(!isNaN(parseInt(symbol)) || symbol=='.'){
- console.log('number');
- numberHandler(symbol)
- }else{
- console.log('operation');
- operationHandler(symbol)
- }
- }
- function numberHandler(n){
- if(operationClicked){
- input.value="";
- operationClicked = false;
- }
- if(n=='0'&&input.value=='0') return;
- if(n!='0'&&n!='.'&&input.value=='0'){
- input.value=""
- }
- input.value=input.value+n;
- }
- function operationHandler(o){
- if(o=='C'){
- input.value="0";
- prevOperation = null;
- prevNumber=null;
- return;
- }
- operationClicked = true;
- if(prevNumber)
- switch(prevOperation){
- case '+':
- input.value= prevNumber+ parseFloat(input.value);
- break;
- case '/':
- input.value= prevNumber/ parseFloat(input.value);
- break;
- case '*':
- input.value= prevNumber* parseFloat(input.value);
- break;
- case '-':
- input.value= prevNumber- parseFloat(input.value);
- break;
- }
- prevNumber = parseFloat(input.value);
- prevOperation = o;
- }
- };
- new Calculator(document.getElementById('container'));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement