gpt4 book ai didi

javascript - 如何使用 JavaScript 计算器将 "Fractions"添加到输入区域?

转载 作者:行者123 更新时间:2023-12-01 15:45:41 24 4
gpt4 key购买 nike

我正在尝试创建一个分数计算器。作为 JavaScript 的新手,我遇到了一些问题。我希望它也可以在移动设备上访问,在这种情况下,我需要有可用的输入按钮。我知道我想要做什么,只是不知道我需要怎么做。
当按下按钮时,我想使用 frac 类创建一个新的 div,其中包含相应的元素和类,并将按下的数字插入到 frac div 的那部分中。当按下运算符按钮时,我希望它插入已经存在的分数并显示运算符并为每个分数重复该过程,我正在考虑使用 display:flex 以便他们将一个接一个地添加。
我该怎么做才能做到这一点?谢谢!

:root {
--box-size: 35px;
}

* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: sans-serif;
color: #242424;
}

body {
height: 100vh;
width: 100%;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
}

.input-area {
display: flex;
justify-content: end;
align-items: center;
}

.input-area > * {
padding: 0 10px;
}

/* FRACTION */

.frac {
display: flex;
align-items: center;
}

.number {
height: var(--box-size);
width: var(--box-size);
text-align: center;
line-height: var(--box-size);
font-size: 2rem;
}

.divider {
height: 4px;
width: 100%;
background-color: #292929;
border-radius: 10px;
}

.add {
font-size: 2rem;
}

/* NumPads */

.button {
height: 40px;
width: 50px;
border: none;
cursor: pointer;
background-color: #e6e6e6;
border-radius: 3px;
}
.button:focus {
outline: none;
}

.button:hover {
background-color: #ececec;
}

.num-pads {
display: flex;
justify-content: center;
align-items: center;
}

.num-pads > *,.numerator-num-pad, .denominator-num-pad {
padding: 10px;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Fractions</title>
<link rel="stylesheet" href="style.css">
</head>
<body>

<div class="input-area">
<div class="frac">
<div class="number whole-number">2</div>
<div class="frac-numbers">
<div class="number numerator">3</div>
<div class="divider"></div>
<div class="number denominator">8</div>
</div>
</div>
<div class="add">+</div>
<div class="frac">
<div class="number whole-number">5</div>
<div class="frac-numbers">
<div class="number numerator">1</div>
<div class="divider"></div>
<div class="number denominator">4</div>
</div>
</div>
<div class="add">+</div>
<div class="frac">
<div class="frac-numbers">
<div class="number numerator">7</div>
<div class="divider"></div>
<div class="number denominator">16</div>
</div>
</div>
</div>

<div class="num-pads">
<div class="whole-num-pad">
<table>
<tr>
<td><input type="button" class="button" value="1"></td>
<td><input type="button" class="button" value="2"></td>
<td><input type="button" class="button" value="3"></td>
</tr>
<tr>
<td><input type="button" class="button" value="4"></td>
<td><input type="button" class="button" value="5"></td>
<td><input type="button" class="button" value="6"></td>
</tr>
<tr>
<td><input type="button" class="button" value="7"></td>
<td><input type="button" class="button" value="8"></td>
<td><input type="button" class="button" value="9"></td>
</tr>
<tr>
<td><input type="button" class="button" value="C"></td>
<td><input type="button" class="button" value="0"></td>
<td><input type="button" class="button" value="<"></td>
</tr>
</table>
</div>
<div class="frac-parts">
<div class="numerator-num-pad">
<table>
<tr>
<td><input type="button" class="button" value="1"></td>
<td><input type="button" class="button" value="2"></td>
<td><input type="button" class="button" value="3"></td>
</tr>
<tr>
<td><input type="button" class="button" value="4"></td>
<td><input type="button" class="button" value="5"></td>
<td><input type="button" class="button" value="6"></td>
</tr>
<tr>
<td><input type="button" class="button" value="7"></td>
<td><input type="button" class="button" value="8"></td>
<td><input type="button" class="button" value="9"></td>
</tr>
<tr>
<td><input type="button" class="button" value="C"></td>
<td><input type="button" class="button" value="0"></td>
<td><input type="button" class="button" value="<"></td>
</tr>
</table>
</div>
<div class="divider"></div>
<div class="denominator-num-pad">
<table>
<tr>
<td><input type="button" class="button" value="1"></td>
<td><input type="button" class="button" value="2"></td>
<td><input type="button" class="button" value="3"></td>
</tr>
<tr>
<td><input type="button" class="button" value="4"></td>
<td><input type="button" class="button" value="5"></td>
<td><input type="button" class="button" value="6"></td>
</tr>
<tr>
<td><input type="button" class="button" value="7"></td>
<td><input type="button" class="button" value="8"></td>
<td><input type="button" class="button" value="9"></td>
</tr>
<tr>
<td><input type="button" class="button" value="C"></td>
<td><input type="button" class="button" value="0"></td>
<td><input type="button" class="button" value="<"></td>
</tr>
</table>
</div>
</div>
</div>
</body>
</html>

最佳答案

我在下面创建了一个简单的示例,它允许用户单击一个分数,然后调整所选分数的每个部分。
注意:我用过 jQuery因此,如果您目前没有,我建议您添加对它的引用。
该脚本通过监听 click 起作用。小键盘上的事件。它将检查按钮值以确定需要发生什么(清除、删除最后一个字符、添加字符)。
我添加了运算符按钮,这些按钮将附加一个运算符字段和一个新分数。然后可以以相同的方式选择和更新新的分数。

$(document)
.on("click", ".frac", function(){
// remove "active" class from all .frac
$(".frac").removeClass("active");

// add "active" class to this .frac
$(this).addClass("active");
})
.on("click", ".whole-num-pad .button", function(){
// whole number button pressed
var btnValue = $(this).val(),
$target = $(".frac.active .whole-number"), // get the current active frac
targetValue = $target.text(); // get the current value of the active frac

if(btnValue === "C"){
$target.text(""); // clear target
return;
}

if(btnValue === "<"){
// remove the last character from the current value
$target.text(targetValue.substr(0, targetValue.length - 1));
return;
}

// add btnValue to targetValue
// making sure we pass at least 1 as a string so that JS doesn't attempt to "add"
$target.text(targetValue + btnValue.toString());
})
.on("click", ".numerator-num-pad .button", function(){
// numerator button pressed
var btnValue = $(this).val(),
$target = $(".frac.active .numerator"), // get the current active frac
targetValue = $target.text(); // get the current value of the active frac

if(btnValue === "C"){
$target.text(""); // clear target
return;
}

if(btnValue === "<"){
// remove the last character from the current value
$target.text(targetValue.substr(0, targetValue.length - 1));
return;
}

// add btnValue to targetValue
// making sure we pass at least 1 as a string so that JS doesn't attempt to "add"
$target.text(targetValue + btnValue.toString());
})
.on("click", ".denominator-num-pad .button", function(){
// denominator button pressed
var btnValue = $(this).val(),
$target = $(".frac.active .denominator"), // get the current active frac
targetValue = $target.text(); // get the current value of the active frac

if(btnValue === "C"){
$target.text(""); // clear target
return;
}

if(btnValue === "<"){
// remove the last character from the current value
$target.text(targetValue.substr(0, targetValue.length - 1));
return;
}

// add btnValue to targetValue
// making sure we pass at least 1 as a string so that JS doesn't attempt to "add"
$target.text(targetValue + btnValue.toString());
})
.on("click", ".operator-button", function(){
var operator = $(this).val();

switch(operator){
case "+":
$(".input-area").append('<div class="add">+</div>');
break;
case "-":
$(".input-area").append('<div class="subtract">-</div>');
break;
case "x":
$(".input-area").append('<div class="multiply">x</div>');
break;
}

$(".input-area").append('<div class="frac">\
<div class="number whole-number"></div>\
<div class="frac-numbers">\
<div class="number numerator"></div>\
<div class="divider"></div>\
<div class="number denominator"></div>\
</div>\
</div>');
});
:root {
--box-size: 35px;
}

* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: sans-serif;
color: #242424;
}

body {
height: 100vh;
width: 100%;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
}

.input-area {
display: flex;
justify-content: end;
align-items: center;
}

.input-area > * {
padding: 0 10px;
}

/* FRACTION */

.frac {
display: flex;
align-items: center;
}

.frac.active {
border:1px solid blue;
}

.number {
height: var(--box-size);
width: var(--box-size);
text-align: center;
line-height: var(--box-size);
font-size: 2rem;
}

.divider {
height: 4px;
width: 100%;
background-color: #292929;
border-radius: 10px;
}

.add,
.subtract,
.multiply {
font-size: 2rem;
}

/* NumPads */

.button,
.operator-button {
height: 40px;
width: 50px;
border: none;
cursor: pointer;
background-color: #e6e6e6;
border-radius: 3px;
}
.button:focus {
outline: none;
}

.button:hover {
background-color: #ececec;
}

.num-pads {
display: flex;
justify-content: center;
align-items: center;
}

.num-pads > *,.numerator-num-pad, .denominator-num-pad {
padding: 10px;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Fractions</title>
<link rel="stylesheet" href="style.css">
</head>
<body>

<div class="input-area">
<div class="frac">
<div class="number whole-number">2</div>
<div class="frac-numbers">
<div class="number numerator">3</div>
<div class="divider"></div>
<div class="number denominator">8</div>
</div>
</div>
<div class="add">+</div>
<div class="frac">
<div class="number whole-number">5</div>
<div class="frac-numbers">
<div class="number numerator">1</div>
<div class="divider"></div>
<div class="number denominator">4</div>
</div>
</div>
<div class="add">+</div>
<div class="frac">
<div class="number whole-number"></div>
<div class="frac-numbers">
<div class="number numerator">7</div>
<div class="divider"></div>
<div class="number denominator">16</div>
</div>
</div>
</div>

<div class="operator-buttons">
<input type="button" class="operator-button" value="+" />
<input type="button" class="operator-button" value="-" />
<input type="button" class="operator-button" value="x" />
</div>

<div class="num-pads">
<div class="whole-num-pad">
<table>
<tr>
<td><input type="button" class="button" value="1"></td>
<td><input type="button" class="button" value="2"></td>
<td><input type="button" class="button" value="3"></td>
</tr>
<tr>
<td><input type="button" class="button" value="4"></td>
<td><input type="button" class="button" value="5"></td>
<td><input type="button" class="button" value="6"></td>
</tr>
<tr>
<td><input type="button" class="button" value="7"></td>
<td><input type="button" class="button" value="8"></td>
<td><input type="button" class="button" value="9"></td>
</tr>
<tr>
<td><input type="button" class="button" value="C"></td>
<td><input type="button" class="button" value="0"></td>
<td><input type="button" class="button" value="<"></td>
</tr>
</table>
</div>
<div class="frac-parts">
<div class="numerator-num-pad">
<table>
<tr>
<td><input type="button" class="button" value="1"></td>
<td><input type="button" class="button" value="2"></td>
<td><input type="button" class="button" value="3"></td>
</tr>
<tr>
<td><input type="button" class="button" value="4"></td>
<td><input type="button" class="button" value="5"></td>
<td><input type="button" class="button" value="6"></td>
</tr>
<tr>
<td><input type="button" class="button" value="7"></td>
<td><input type="button" class="button" value="8"></td>
<td><input type="button" class="button" value="9"></td>
</tr>
<tr>
<td><input type="button" class="button" value="C"></td>
<td><input type="button" class="button" value="0"></td>
<td><input type="button" class="button" value="<"></td>
</tr>
</table>
</div>
<div class="divider"></div>
<div class="denominator-num-pad">
<table>
<tr>
<td><input type="button" class="button" value="1"></td>
<td><input type="button" class="button" value="2"></td>
<td><input type="button" class="button" value="3"></td>
</tr>
<tr>
<td><input type="button" class="button" value="4"></td>
<td><input type="button" class="button" value="5"></td>
<td><input type="button" class="button" value="6"></td>
</tr>
<tr>
<td><input type="button" class="button" value="7"></td>
<td><input type="button" class="button" value="8"></td>
<td><input type="button" class="button" value="9"></td>
</tr>
<tr>
<td><input type="button" class="button" value="C"></td>
<td><input type="button" class="button" value="0"></td>
<td><input type="button" class="button" value="<"></td>
</tr>
</table>
</div>
</div>
</div>

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
</body>
</html>

关于javascript - 如何使用 JavaScript 计算器将 "Fractions"添加到输入区域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62925428/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com