- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何为计算器和退格功能添加简单的键盘支持以删除最后输入的数字(如果数字 > 1)或 .
符号?我还需要同时使用 .
和 ,
符号来做这样的事情 (1.02 + 1,02 = 2.04)
.
完整代码如下:
// Calculator script
$(function() {
// Main variables
var $screen = $('.screen');
var value = 0;
var start = true;
var action = 0;
// Display '0' on load
$screen.text('0');
// Digits
$('.digit').on('click', function() {
var mytext = $(this).text();
var curtext = (start) ? '0' : $screen.text();
start = false;
if (mytext == '.') {
if (curtext.indexOf('.') < 0) {
$screen.text(curtext + mytext);
}
} else {
if (curtext === '0') {
// Overwrite
$screen.text(mytext);
} else {
$screen.text(curtext + mytext);
}
}
});
// Maths operations
function Maths_operations() {
var num = parseFloat($screen.text());
switch (action) {
case 0:
{ // Nothing?
value = num;
}
break;
case 1:
{ // Add
value += num;
}
break;
case 2:
{ // Subtract
value -= num;
}
break;
case 3:
{ // Multiply
value *= num;
}
break;
case 4:
{ // Divide
if (num == 0) {
value = 'Error'; // Couldn't divide by zero!
} else {
value /= num;
}
}
break;
default:
break; // Shouldn't happen...
}
start = true; // New number now...
}
// Actions
$('.action').on('click', function() {
switch ($(this).text()) {
case 'C':
{ // Clear
value = 0;
$screen.text('0');
action = 0;
start = true;
}
break;
case '←':
{ // Delete last
Maths_operations();
action = 5;
}
break;
case '\u00F7':
{ // Divide
Maths_operations();
action = 4;
}
break;
case '\u00D7':
{ // Multiply
Maths_operations();
action = 3;
}
break;
case '-':
{ // Subtract
Maths_operations();
action = 2;
}
break;
case '+':
{ // Add
Maths_operations();
action = 1;
}
break;
case '=':
{ // Equals
Maths_operations();
$screen.text(value);
action = 0; // Nothing
}
break;
default:
{ // If it's not a button
console.log($(this).text());
}
}
});
});
/* Basic reset */
* {
margin: 0;
padding: 0;
box-sizing: border-box;
/* Global text styling */
font-family: 'Roboto Mono', Helvetica, Arial, sans-serif;
}
/* Background */
html {
height: 100%;
background: rgba(171, 168, 168, 0.82);
background-size: cover;
}
/* Name */
.pre-top > span {
display: block;
/* Special text styling */
font-family: 'Josefin Slab', Monospace, sans-serif;
font-size: 20px;
line-height: 22px;
letter-spacing: 2px;
font-weight: bold;
color: #000;
text-align: center;
}
.pre-top .version {
margin-bottom: 10px;
font-size: 12px;
}
/* Calculator body */
.calculator {
/* Absolute horizontal & vertical centering */
position: absolute;
top: 50%;
left: 50%;
-webkit-transform: translate(-50%, -50%);
-moz-transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%);
-o-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
width: 400px;
height: auto;
padding: 20px 20px 9px;
background: #b8c6cc;
background: linear-gradient(#979fa2 14.9%, #6a7073 52.31%);
border-radius: 3px;
/* Using box shadows to create 3D effects */
box-shadow: 0 4px #5e6264, 0 10px 15px rgba(0, 0, 0, 0.2);
}
/* Top */
.top span.clear {
float: left;
}
.top .screen {
height: 40px;
width: 212px;
float: right;
padding: 0 10px;
margin-bottom: 20px;
/* Inset shadow on the screen to create some indent */
background: rgba(0, 0, 0, 0.2);
border-radius: 3px;
box-shadow: inset 0 4px rgba(0, 0, 0, 0.2);
/* Typography */
font-size: 17px;
line-height: 40px;
color: #fff;
text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.2);
text-align: right;
letter-spacing: 1px;
}
/* Clear floats */
.keys,
.top {
overflow: hidden;
}
/* Applying same to the keys */
.keys span,
.top span.clear,
.top span.backspace {
float: left;
position: relative;
top: 0;
cursor: pointer;
width: 66px;
height: 36px;
background: #fff;
border-radius: 3px;
box-shadow: 0 4px rgba(0, 0, 0, 0.2);
margin: 0 8px 11px 0;
color: #000;
line-height: 36px;
text-align: center;
/* Smoothing out hover and active states using css3 transitions */
transition: all 0.2s ease;
/* Prevent selection of text inside keys in all browsers*/
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.keys span {
width: 84px;
}
/* Style different type of keys (operators/evaluate/clear) differently */
.keys span.operator {
background: #f5ac75;
/* Remove right margins from operator keys */
margin-right: 0;
color: #fff;
}
.keys span.eval {
background: #79de9e;
color: #fff;
}
.top span.clear,
.top span.backspace {
background: #e79199;
color: #fff;
}
/* Some hover effects */
.keys span:hover {
background: #7d8ae3;
box-shadow: 0 4px #5963a0;
color: #fff;
}
.keys span.operator:hover {
background: #fa9345;
box-shadow: 0 4px #ce8248;
}
.keys span.eval:hover {
background: #39f788;
box-shadow: 0 4px #2fc66e;
color: #fff;
}
.top span.clear:hover,
.top span.backspace:hover {
background: #f86670;
box-shadow: 0 4px #d5656d;
}
/* Simulating "pressed" effect on active state of the keys by removing the box-shadow and moving the keys down a bit */
.keys span:active {
top: 4px;
box-shadow: 0 0 #6b54d3;
}
.keys span.eval:active {
top: 4px;
box-shadow: 0 0 #717a33;
}
.top span.clear:active,
.top span.backspace:active {
top: 4px;
box-shadow: 0 0 #d3545d;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<!-- Some Google Fonts -->
<link href='https://fonts.googleapis.com/css?family=Josefin+Slab|Roboto+Mono:500' rel='stylesheet' type='text/css'>
<!-- Calculator -->
<div class="calculator">
<!-- Name -->
<div class="pre-top">
<span class="name">jQuery calculator</span>
<span class="version">v1.1</span>
<div>
<!-- Clear key & screen-->
<div class="top">
<span class="action clear">C</span>
<span class="action backspace">←</span>
<span class="screen"></span>
</div>
<!-- Operators and other keys -->
<div class="keys">
<span class="digit">7</span>
<span class="digit">8</span>
<span class="digit">9</span>
<span class="action operator">+</span>
<span class="digit">4</span>
<span class="digit">5</span>
<span class="digit">6</span>
<span class="action operator">-</span>
<span class="digit">1</span>
<span class="digit">2</span>
<span class="digit">3</span>
<span class="action operator">÷</span>
<span class="digit">0</span>
<span class="digit">.</span>
<span class="action eval">=</span>
<span class="action operator">×</span>
</div>
</div>
和Codepen版本。感谢收看!
最佳答案
当我向 Web 应用程序添加快捷键时,我最终使用了 jwerty。我将它与 jQuery 一起使用,但它没有依赖项。
https://github.com/keithamus/jwerty
这使得指定键和事件处理程序变得容易。
jwerty.key('⌫', function () {
//Code here to remove last char from calculator screen
});
注意:您必须确保浏览器窗口具有焦点,快捷键才能正常工作。
关于javascript - 为 jQuery 计算器添加键盘支持和退格键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33103773/
我创建了一个用户可以添加测试的字段。这一切运行顺利我只希望当用户点击(添加另一个测试)然后上一个(添加另一个测试)删除并且这个显示在新字段中。 所有运行良好的唯一问题是点击(添加另一个字段)之前添加另
String[] option = {"Adlawan", "Angeles", "Arreza", "Benenoso", "Bermas", "Brebant
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
我正在努力将 jQuery 滚动功能添加到 nav-tab (Bootstrap 3)。我希望用户能够选择他们想要的选项卡,并在选项卡内容中有一个可以平滑滚动到 anchor 的链接。这是我的代码,可
我正在尝试在用户登录后再添加 2 个 ui 选项卡。首先,我尝试做一个之后。 $('#slideshow').tabs('remove', '4'); $("#slideshow ul li:last
我有一个包含选择元素的表单,我想通过选择添加和删除其中一些元素。这是html代码(这里也有jsfiddle http://jsfiddle.net/txhajy2w/):
正在写这个: view.backgroundColor = UIColor.white.withAlphaComponent(0.9) 等同于: view.backgroundColor = UICo
好的,如果其中有任何信息,我想将这些列添加到一起。所以说我有 账户 1 2 3 . 有 4 个帐户空间,但只有 3 个帐户。我如何创建 java 脚本来添加它。 最佳答案 Live Example H
我想知道是否有一种有效的预制算法来确定一组数字的和/差是否可以等于不同的数字。示例: 5、8、10、2,使用 + 或 - 等于 9。5 - 8 = -3 + 10 = 7 + 2 = 9 如果有一个预
我似乎有一个卡住的 git repo。它卡在所有基本的添加、提交命令上,git push 返回所有内容为最新的。 从其他帖子我已经完成了 git gc 和 git fsck/ 我认为基本的调试步骤是
我的 Oracle SQL 查询如下- Q1- select hca.account_number, hca.attribute3, SUM(rcl.extended_amou
我正在阅读 http://developer.apple.com/iphone/library/documentation/iPhone/Conceptual/iPhoneOSProgrammingG
我正在尝试添加一个“加载更多”按钮并限制下面的结果,这样投资组合页面中就不会同时加载 1000 个内容,如下所示:http://typesetdesign.com/portfolio/ 我对 PHP
我遇到这个问题,我添加了 8 个文本框,它工作正常,但是当我添加更多文本框(如 16 个文本框)时,它不会添加最后一个文本框。有人遇到过这个问题吗?提前致谢。 Live Link: JAVASCRIP
add/remove clone first row default not delete 添加/删除克隆第一行默认不删除&并获取正确的SrNo(例如:添加3行并在看到问题后删除SrNo.2)
我编码this ,但删除按钮不起作用。我在控制台中没有任何错误.. var counter = 0; var dataList = document.getElementById('materi
我有一个类似数组的对象: [1:数组[10]、2:数组[2]、3:数组[2]、4:数组[2]、5:数组[3]、6:数组[1]] 我正在尝试删除前两个元素,执行一些操作,然后将它们再次插入到同一位置。
使用的 Delphi 版本:2007 你好, 我有一个 Tecord 数组 TInfo = Record Name : String; Price : Integer; end; var Info
我使用了基本的 gridster 代码,然后我声明了通过按钮添加和删除小部件的函数它工作正常但是当我将调整大小功能添加到上面的代码中时,它都不起作用(我的意思是调整大小,添加和删除小部件) 我的js代
title 323 323 323 title 323 323 323 title 323 323 323 JS $(document).keydown(function(e){
我是一名优秀的程序员,十分优秀!