昨天开始做一个小项目来制作一个计算器。我认为它完全正常工作但我想更进一步添加键盘输入(就像你可以在出厂默认的OS计算器上一样)
我在这里找到了答案,但它是针对C#的。
所以:
如何在JavaScript中添加键盘输入?这将包括0-9,所有运算符,“C”清除和“删除”/“esc”以删除最后一个条目。
理想情况下,我希望css悬停效果(更暗的阴影)我做到了 点击键时也是如此。
您可以在此处查看: http://codepen.io/kreitzo/pen/RapEqp
的index.html
<div id="calculator">
<div id="screen">
<div id="calc">0</div>
<div id="result">0</div>
</div>
<button class="value">1</button><button class="value">2</button><button class="value">3</button><button class="value">+</button><button class="value">4</button><button class="value">5</button><button class="value">6</button><button class="value">-</button><button class="value">7</button><button class="value">8</button><button class="value">9</button><button class="value">*</button><button class="value">.</button><button class="value">0</button><button class="CE"> ←</button><button class="value">/</button><button class="equals">=</button><button class="C">C</button>
</div>
的script.js
$(document).ready(function() {
var string = "";
/* Calculator input string */
$(".value").click(function() {
string += $(this).text();
$("#calc").text(string);
});
/* Clear all */
$(".C").click(function() {
string = "";
$("#calc, #result").text("0");
});
/* Clear last entry */
$(".CE").click(function() {
string = string.slice(0, string.length - 1);
$("#calc").text(string);
});
/* Show result */
$(".equals").click(function() {
$("#result").text(eval(string));
});
});
答案 0 :(得分:6)
以下是codePen示例中的按键功能示例:
http://codepen.io/anon/pen/WwjNao
document.onkeypress = function (e) {
keyPressed = String.fromCharCode(e.which);
if($("#calc").length > 0){
$("#calc").append(keyPressed);
}else{
$("#calc").text(keyPressed);
}
};
这是一个暗示,我不会给你所有的代码;)
答案 1 :(得分:3)
我已经用你的代码笔副本中的一些基本数字开始了你
你必须听一个按键并将键(event.which)与它应该触发的事件相匹配。
$(document).keypress(function(event){
console.log(event.which);
//0
if(event.which == 48){
string += 0;
$("#calc").text(string);
}
});
http://codepen.io/anon/pen/LNyYJM
此外,如果你做0123 + 5,它说它等于88,所以你可能想把它当作一个错误。
答案 2 :(得分:2)
您可以使用按键https://api.jquery.com/keypress/并听取正在按下的按键。
密钥代码:https://css-tricks.com/snippets/javascript/javascript-keycodes/
$( "#target" ).keypress(function( event ) {
if ( event.which == 48 ) {
// Return #0
}
if ( event.which == 49 ) {
// Return #1
}
// and so on...
});