您现在的位置是:网站首页> 编程资料编程资料
微信小程序实现计算器(含历史记录)_javascript技巧_
2023-05-24
477人已围观
简介 微信小程序实现计算器(含历史记录)_javascript技巧_
本文实例为大家分享了微信小程序实现计算器的具体代码,供大家参考,具体内容如下
1、实现效果图

2、代码编写
index.wxml
|历史记录 {{item}} 清空记录| {{history}} {{num}} {{op}} C DEL % ÷ 7 8 9 × 4 5 6 - 1 2 3 + 0 . =
index.wxss
/* pages/index/index.wxss author:LHXZ 灵魂学者*/ page { display: flex; flex-direction: column; height: 100%; color: #555; } .result { flex: 1; background: #f3f6fe; position: relative; } .result-num { position: absolute; font-size: 27pt; bottom: 5vh; right: 3vw; } .result-op { font-size: 15pt; position: absolute; bottom: 1vh; right: 3vw; } .btns { flex: 1; } /* 按钮样式 */ .bg { background: #eee; } .btns { flex: 1; display: flex; flex-direction: column; font-size: 17pt; border-top: 1rpx solid #ccc; border-left: 1rpx solid #ccc; } .btns > view { flex: 1; display: flex; } .btns > view > view { flex-basis: 25%; border-right: 1rpx solid #ccc; border-bottom: 1rpx solid #ccc; box-sizing: border-box; display: flex; align-items: center; justify-content: center; } .btns > view:last-child > view:first-child { flex-basis: 50%; } .btns > view:first-child > view:first-child { color: #f00; } .btns > view > view:last-child { color: #fc8e00; } .history{ position: absolute; top:20rpx; right:40rpx; font-size: 2rem; color: rgb(199, 199, 199); } .h_text{ color: rgb(136, 136, 136); margin-left: 20rpx; } .historying{ position: absolute; top:200rpx; } scroll-view{ height: 200rpx; background-color: rgba(255, 255, 255, 0.5); } .historyed{ position: absolute; top:150rpx; left: 10rpx; font-size: 30rpx; color: gray; } .clear{ position: absolute; top:150rpx; right: 10rpx; font-size: 30rpx; color: blue; }index.json
{ "navigationBarBackgroundColor": "#fff", "navigationBarTitleText": "计算器", "navigationBarTextStyle": "black", "usingComponents": { } }index.js
/*author:LHXZ 灵魂学者*/ Page({ /** * 页面的初始数据 */ data: { num: '0', op: '', history:'', logs:[] }, result: null, isClear: false, // 数字按钮事件处理函数 numBtn: function(e) { var num = e.target.dataset.val if (this.data.num === '0' || this.isClear) { this.setData({ num:num }) this.isClear = false } else{ this.setData({ num: this.data.num + num }) } }, // 运算符事件处理函数 opBtn: function(e) { var op = this.data.op; var num = Number(this.data.num); var newOp = e.target.dataset.val this.setData({ op:newOp }) if (this.isClear) { this.setData({ history:this.data.history.substr(0,this.data.history.length-1)+newOp }) return } this.setData({history:this.data.history+''+num+newOp}) this.isClear = true if (this.result === null) { this.result = num return } if (op === '+') { this.result = this.result + num } else if (op === '-') { this.result = this.result - num } else if (op === '*') { this.result = this.result * num } else if (op === '/') { this.result = this.result / num } else if (op === '%') { this.result = this.result % num }else if (op === '=') { this.result =num this.setData({ history:num + newOp }) } this.setData({ num: this.result + '', }) // 历史记录 this.data.logs.unshift(this.data.history); this.setData({ logs:this.data.logs }) }, // 清空记录 clear:function(){ this.setData({ logs:[] }) }, // 小数点事件处理函数 dotBtn: function() { if (this.isClear) { this.setData({ num: '0.' }) this.isClear = false return } if (this.data.num.indexOf('.') >= 0) { return } this.setData({ num: this.data.num + '.' }) }, // DEL按钮处理函数 delBtn: function() { var num = this.data.num.substr(0, this.data.num.length - 1) this.setData({ num: num === '' ? '0' : num }) }, // C按钮事件处理函数 resetBtn: function() { this.result = null this.isClear = false this.setData({ num: '0', op: '', history:'' }) } })以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
相关内容
- Vue3 构建 Web Components使用详解_vue.js_
- Node.js 中常用内置模块(path 路径模块)_node.js_
- React状态管理器Rematch的使用详解_React_
- 小程序实现登录功能_javascript技巧_
- vue使用swiper的时候第二轮事件不会触发问题_vue.js_
- 微信小程序实现简易计算器功能_javascript技巧_
- vue获取token如何实现token登录_vue.js_
- vue组件传值(高级)、属性传值、反向传值、跨级传值实例详解_vue.js_
- 关于axios配置多个请求地址(打包后可通过配置文件修改)_vue.js_
- Vue自定义指令的使用详细介绍_vue.js_
