jquery钢琴键盘计算器插件

所属分类: 网页特效-实用工具    2023-09-26 09:51:50

jquery钢琴键盘计算器插件 ie兼容6
 查看演示  登录后下载 温馨提示
登录会员即可享受免费下载
 我要建站

jquery钢琴键盘计算器插件(共4个文件)

    • index.html

使用方法

$(function() {
	var operatorsArr = ['+', '-', '*', '/', '%', '^'],
		operatorsNotDoneArr = ['√', 'tan', 'cos', 'sin', 'exp', '!'];
	
	$('.keys .operators > *, .keys .numbers > *').click(function() {
		var clickedKey = $(this).text(),
			resultContent = $('.screens .result').text(),
			msContent;

		switch(clickedKey) {
			case 'C':
				$('.screens .result').empty();
				break;
			case '←':
				$('.screens .result').empty().append(resultContent.substring(0, resultContent.length - 1));
				break;
			case '=':
				var total = splitFormula(resultContent).toString();
				total = total.replace(/e\+[0-9]+/g, "");
				total = total.replace(/NaN[0-9]+/g, "");
				total = total.replace(/false/g, "");
				clickedKey ='';
				$('.screens .result').empty().append(total);
				break;
			case 'Ms':
				$('.screens .stock').empty().append(resultContent);
				break;
			case 'M+':
				if ($('.screens .stock').text() != '') {
					msContent = '+' + $('.screens .stock').text();
					$('.screens .result').append(msContent);
				}	
				break;
			case 'M-':
				if ($('.screens .stock').text() != '') {
					msContent = '-' + $('.screens .stock').text();
					$('.screens .result').append(msContent);
				}
				break;
			default:
				if ($.inArray(clickedKey, operatorsNotDoneArr) === -1) {
					$('.screens .result').append(clickedKey);
				}
				break;
		}
	});

	function splitFormula(str) {
		var number = '', 
			numbersArr = [], 
			operatorsStr = '';

		for (var c = 0; c < str.length; c++) {
      		if ($.inArray(str[c], operatorsArr) !== -1) {
				numbersArr.push(number);
				operatorsStr += str[c];
				number = '';
			}
			else {
				number += str[c];
			}
			
		}
		numbersArr.push(number);

		//calcul
		if (operatorsStr !== '') {
			var step1 = 1, 
				step0 = 0, 
				result, 
				numbersArr_nb = numbersArr.length;

			while (step1 < numbersArr_nb) {
				var x = numbersArr[step0];
				var y = numbersArr[step1];
				var op = operatorsStr[step1 - 1];

				result = calculate(x, y, op);
				numbersArr[step1] = result;
				step1++;
				step0++;
			}

			return result;
		}
		else {
			return number;
		}
	}

	function calculate(a, b, op) {
    	var r;

    	if (isNaN(a) || isNaN(b)) {
    		alert("Failed: cannot calculate with a signed number");
    		return false;
    	}
    	else {
    		a = parseFloat(a);
    		b = parseFloat(b);
    	}

		switch (op) {
			case '+':
				r = a + b;
				break; 
			case '-':
				r = a - b;
				break;
			case '*':
				r = a * b;
				break;
			case '/':
				r = a / b;
				break;
			case '%':
				r = a % b;
				break;
			case '^':
				if (b == 0) {
					r = 1;
				}
				else {
					r = 1;
					for (var i = 0; i < b; i++) {
						r *= a;
					}
				}
		}

		return r;
	}

});

站长提示:
1. 苦力吧素材官方QQ群:950875342
2. 平台上所有素材资源,需注册登录会员方能正常下载。
3. 会员用户积极反馈网站、素材资源BUG或错误问题,每次奖励2K币
4. PHP源码类素材,如需协助安装调试,或你有二次开发需求,可联系苦力吧客服。
5. 付费素材资源,需充值后方能下载,如有任何疑问可直接联系苦力吧客服
相关资源 / 实用工具

javascript支持鼠标动态调整DIV大小插件

一款原生js实现的DIV大小插件,通过鼠标拖动div的四个角来更改div大小的功能。向div的resizer元素添加事件监听,让用户交互式的调整div的宽度和高度。
  实用工具
 9784  0

javascript订单小费打赏在线计算器工具

一款根据金额计算小费工具,它根据账单金额、服务质量和分摊账单的人数来计算小费金额。
  实用工具
 3748  0

jquery拖动DIV区块判断是否跟其它区块重叠触发事件插件

一款拖拽重叠交错触发插件,当一个可移动的DIV区块拖放到另一个DIV区块上时,触发的多种不同的事件。含:重叠次数统计、拖拽物体是否已全部重叠、拖放后回到原位
  实用工具
 7734  0

JS实现超好用的随机密码生成器

一个在线随机密码生成器,其本质就是一个可以生成随机字符串的在线工具。它的特点是不仅有一个漂亮的外观,而且可以控制随机密码的复杂度,比如控制加入字符的大小写、长度以及数字和特殊符号。
  实用工具
 7593  0

评论数(1) 回复有机会获得K币 用户协议

    xiaoshenzhen0
    2023-09-28 13:24:27
😀
  • 😀
  • 😊
  • 😂
  • 😍
  • 😑
  • 😷
  • 😵
  • 😛
  • 😣
  • 😱
  • 😋
  • 😎
  • 😵
  • 😕
  • 😶
  • 😚
  • 😜
  • 😭
发表评论