注册 登录 充值会员 退出
网站、APP、小程序等定制开发,联系QQ 1206995177 毕业设计 java源码 PHP源码
充值

简易灰色逆波兰表达式计算器代码

作者/代码整理:  (源码已亲测,不会安装的可以向QQ1915635791要安装视频教程) 发布日期:2024-03-22
简易灰色逆波兰表达式计算器代码
简易灰色逆波兰表达式计算器代码,一款适用于手机移动端的网页计算器。


js代码

<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/kiner-calc.js"></script>
<script type="text/javascript">
// 完美解决 ios10 及以上 Safari 无法禁止缩放的问题
window.onload = function () {
// 阻止双击放大
var lastTouchEnd = 0;
document.addEventListener('touchstart', function (event) {
  if (event.touches.length > 1) {
	event.preventDefault();
  }
});
document.addEventListener('touchend', function (event) {
  var now = (new Date()).getTime();
  if (now - lastTouchEnd <= 300) {
	event.preventDefault();
  }
  lastTouchEnd = now;
}, false);

// 阻止双指放大
document.addEventListener('gesturestart', function (event) {
  event.preventDefault();
});
}

var kinerCalc = new KinerCalc();
var resultPanel = $('.result-panel .data');

function calcFontSize(panelWidth, dataWidth) {
var rate = 1;
if (panelWidth < dataWidth) {
  rate = panelWidth / (dataWidth + 40);

  console.log(rate);

  return rate;
} else {
  return rate;
}

}

var isMobile = "ontouchend" in document ? true : false;

$('.calc-container').on(isMobile?'touchend':'click', '.key', function () {

var key = $(this).data('key');
var val = resultPanel.text();
$(this).addClass('active');
var _this = this;
setTimeout(function () {
  $(_this).removeClass('active');
}, 100);

if (["+", "-", "*", ""].indexOf(key) >= 0 && ["+", "-", "*", ""].indexOf(val[val.length - 1]) >= 0) {
  return false;
}

if (key === "eq") {
  var txt = resultPanel.text();
  if (txt.length === 0) {
	return false;
  }
  var res = kinerCalc.calc(txt);
  resultPanel.text(res);
} else if (key === "del") {

  resultPanel.text(val.substring(0, val.length - 1));
} else if (key === "delAll") {
  resultPanel.text('');
} else if (key === "(") {
  if (["(", ")"].indexOf(val[val.length - 1]) >= 0) {
	return false;
  }
  resultPanel.append(key);
} else if (key === ")") {
  if (["(", ")"].indexOf(val[val.length - 1]) >= 0) {
	return false;
  }
  resultPanel.append(key)
} else {
  resultPanel.append(key);
}

resultPanel.css({
  transform: 'translateY(-50%) scale(' + calcFontSize($('.result-panel').width(), resultPanel.width()) + ')'
});

});
</script>