微信小程序怎么实现计算器小功能
发表于:2024-09-25 作者:千家信息网编辑
千家信息网最后更新 2024年09月25日,这篇文章主要介绍"微信小程序怎么实现计算器小功能"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"微信小程序怎么实现计算器小功能"文章能帮助大家解决问题。效果图:
千家信息网最后更新 2024年09月25日微信小程序怎么实现计算器小功能
这篇文章主要介绍"微信小程序怎么实现计算器小功能"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"微信小程序怎么实现计算器小功能"文章能帮助大家解决问题。
效果图:
代码附上:
app.json
{ "pages":[ "pages/index/index", "pages/logs/logs" ], "window": { "navigationBarBackgroundColor": "#000000", "navigationBarTextStyle": "white", "navigationBarTitleText": "智能计算器" }, "tabBar": { //补充说一下,我这个tabBar是用来设置底部tab的 "color":"#ff69b4", "selectedColor":"#0000ff", "backgroundColor":"#ffff00", "list": [ { "pagePath": "pages/index/index", "text": "计 算 机" }, { "pagePath": "pages/logs/logs", "text": "日志" }, { "pagePath":"pages/logs/logs", "text":"回家" } ]}}
/*app.wxss/*
.container { height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: space-between; padding: 200rpx 0; box-sizing: border-box;}
**其中一些组件不认识的话, 建议到微信小程序官网多看几遍
index.wxml:
{{displayValue}}
index.js:
Page({ data: { value: null, // 上次计算后的结果,null表示没有上次计算的结果 displayValue: "0", // 显示数值 operator: null, // 上次计算符号,null表示没有未完成的计算 waitingForOperand: false // 前一按键是否为计算符号 }, onLoad: function (options) { this.calculatorOperations = { "key-divide": (prevValue, nextValue) => prevValue / nextValue, "key-multiply": (prevValue, nextValue) => prevValue * nextValue, "key-add": (prevValue, nextValue) => prevValue + nextValue, "key-subtract": (prevValue, nextValue) => prevValue - nextValue, "key-equals": (prevValue, nextValue) => nextValue } }, /* AC操作,一下回到解放前 */ clearAll() { this.setData({ value: null, displayValue: "0", operator: null, waitingForOperand: false }) }, /* 仅清空当前显示的输入值 */ clearDisplay() { this.setData({ displayValue: "0" }) }, onTapFunction: function (event) { const key = event.target.dataset.key; switch (key) { case "key-clear": if (this.data.displayValue !== "0") { this.clearDisplay(); } else { this.clearAll(); } break; case "key-sign": var newValue = parseFloat(this.data.displayValue) * -1 this.setData({ displayValue: String(newValue) }) break; case "key-percent": const fixedDigits = this.data.displayValue.replace(/^-?d*.?/, "") var newValue = parseFloat(this.data.displayValue) / 100 this.setData({ displayValue: String(newValue.toFixed(fixedDigits.length + 2)) }); break; default: break; } }, onTapOperator: function (event) { const nextOperator = event.target.dataset.key; const inputValue = parseFloat(this.data.displayValue); if (this.data.value == null) { this.setData({ value: inputValue }); } else if (this.data.operator) { const currentValue = this.data.value || 0; const newValue = this.calculatorOperations[this.data.operator](currentValue, inputValue); this.setData({ value: newValue, displayValue: String(newValue) }); } this.setData({ waitingForOperand: true, operator: nextOperator }); }, onTapDigit: function (event) { const key = event.target.dataset.key; // 根据data-key标记按键 if (key == "key-dot") { // 按下点号 if (!(/./).test(this.data.displayValue)) { this.setData({ displayValue: this.data.displayValue + ".", waitingForOperand: false }) } } else { // 按下数字键 const digit = key[key.length - 1]; if (this.data.waitingForOperand) { this.setData({ displayValue: String(digit), waitingForOperand: false }) } else { this.setData({ displayValue: this.data.displayValue === "0" ? String(digit) : this.data.displayValue + digit }) } } }})
index.wxss:
page { height:100%;}.calculator { width: 100%; height: 100vh; border:solid 1px; background: rgb(238, 5, 5); position: relative; box-shadow: 0px 0px 20px 0px rgb(211, 41, 41); display: flex; flex-direction: column; box-sizing: border-box;}.calculator-display { /*显示器背景颜色*/ background: #2c2a2c; flex: 1;}/*TODO:解决文本垂直居中问题,显示器数字颜色*/.calculator-display-text { padding: 0 30px; font-size: 3em; color: rgb(245, 245, 248); text-align: right;}.calculator-keypad { display: flex;}.calculator .function-keys { display: flex; color:rgb(245, 13, 13);}.calculator .digit-keys { background: #0808f7; display: flex; flex-direction: row; flex-wrap: wrap-reverse;}.calculator-key-hover { /*按钮按下以后的颜色*/ box-shadow: inset 0px 0px 25vw 0px hsla(71, 90%, 48%, 0.898);}.calculator-key {background-color:aqua; display: block; width: 25vw; height: 25vw; line-height: 25vw; border-top: 1px solid rgb(6, 245, 78); border-right: 1px solid rgb(19, 241, 12); text-align: center; box-sizing: border-box;}.calculator .function-keys .calculator-key { font-size: 2em;}.calculator .digit-keys .calculator-key { font-size: 3em;}.calculator .digit-keys .key-0 { width: 50vw; text-align: left; padding-left: 9vw;}.calculator .digit-keys .key-dot { padding-top: 1em; font-size: 0.75em;}.calculator .operator-keys .calculator-key { color: rgb(248, 165, 10); border-right: 0; font-size: 3em;}.calculator .function-keys { background: linear-gradient(to bottom, rgb(6, 6, 240) 0%, rgb(52, 5, 240) 100%);}.calculator .operator-keys { background: linear-gradient(to bottom, rgba(252,156,23,1) 0%, rgba(247,126,27,1) 100%);}.input-keys { width: 100%;}.operator-keys { width: 100%;}
关于"微信小程序怎么实现计算器小功能"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。
程序
计算器
功能
知识
颜色
按键
数字
显示器
符号
结果
行业
问题
不同
实用
代码
内容
实用性
实际
底部
建议
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全 红黄牌制度
数字互联网未来科技
昆明银行软件开发
数据库的信息质量
亚特兰蒂斯网络技术
金牛区悦文网络技术咨询工作室
天津虚拟服务器管理软件
青海博思网络技术有限公司
新冠网络安全事件
cmd窗口如何连接数据库
计算机网络技术RIP怎么连接
快手极速版软件开发者是谁
青岛企业软件开发
msdb数据库有什么用
签了订单还要做服务器吗
互联网技术科技介绍PPT模板
江西计算机网络技术专科
世界网络安全最好的学校
工商联网络安全信息化会议
我的世界服务器如何做活动好
多web访问服务器sh
安域防护节点到资源服务器
电脑无法运行服务器
加强网络安全防护能力建设
软件开发服务费会计科目
苹果公司的服务器是什么系统
mdb数据库 自动编号清0
巨野诚信积分管理软件开发
数据库管理系统崩溃和停电的关系
对网络技术的认知