简易灰色逆波兰表达式计算器代码,一款适用于手机移动端的网页计算器。
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>
暂无评论内容