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. 付费素材资源,需充值后方能下载,如有任何疑问可直接联系苦力吧客服
相关资源 / 实用工具

jquery可拖拽锁定的平面图区域标记

一款支持拖拽控制的平面图区域标记插件,在背景平面图上创建和编辑区块,包括区块描述和颜色,支持背景拖拽移动和区块拖拽移动。
  实用工具
 21124  0

js温度单位在线转换工具

一款摄氏度和华氏度温度单位转换器,通过输入的温度和选择温度单位,点击按钮可立即输出显示转换的温度值。
  实用工具
 8633  0

纯js实现的网页增加水印特效

一款页面自定义水印文字特效代码,主要是基于属性pointerevents实现!
  实用工具
 5753  0

jquery支持自定义的打印预览插件

jQuery支持的自定义打印预览插件,允许用户在打印前在页面弹出窗口中使用打印样式表预览页面。
  实用工具
 6793  0

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

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