赞
踩
微信小程序是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或者搜一下即可打开应用。也体现了“用完即走”的理念,用户不用关心是否安装太多应用的问题。应用将无处不在,随时可用,但又无需安装卸载。对于开发者而言,微信小程序开发门槛相对较低,难度不及APP,能够满足简单的基础应用,适合生活服务类线下商铺以及非刚需低频应用的转换。微信小程序能够实现消息通知、线下扫码、公众号关联等七大功能。其中,通过公众号关联,用户可以实现公众号与微信小程序之间相互跳转。
提示:以上内容源于百度百科,仅供参考
<!-- index.wxml --> <view class='screen'>{{result}}</view> <view class='test-bg'> <view class='btnGroup'> <view class='item orange' bindtap='clickButton' id="{{C}}">C</view> <view class='item orange' bindtap='clickButton' id="{{back}}">DEL</view> <view class='item orange' bindtap='clickButton' id="{{addSub}}">%</view> <view class='item orange' bindtap='clickButton' id="{{div}}">÷</view> </view> <view class='btnGroup'> <view class='item blue' bindtap='clickButton' id="{{id7}}">7</view> <view class='item blue' bindtap='clickButton' id="{{id8}}">8</view> <view class='item blue' bindtap='clickButton' id="{{id9}}">9</view> <view class='item orange' bindtap='clickButton' id="{{mut}}">×</view> </view> <view class='btnGroup'> <view class='item blue' bindtap='clickButton' id="{{id4}}">4</view> <view class='item blue' bindtap='clickButton' id="{{id5}}">5</view> <view class='item blue' bindtap='clickButton' id="{{id6}}">6</view> <view class='item orange' bindtap='clickButton' id="{{sub}}">-</view> </view> <view class='btnGroup'> <view class='item blue' bindtap='clickButton' id="{{id1}}">1</view> <view class='item blue' bindtap='clickButton' id="{{id2}}">2</view> <view class='item blue' bindtap='clickButton' id="{{id3}}">3</view> <view class='item orange' bindtap='clickButton' id="{{add}}">+</view> </view> <view class='btnGroup'> <view class='item blue' bindtap='clickButton' id="{{percent}}"></view> <view class='item blue' bindtap='clickButton' id="{{id0}}">0</view> <view class='item blue' bindtap='clickButton' id="{{dot}}">.</view> <view class='item orange' bindtap='clickButton' id="{{equ}}">=</view> </view> </view>
// index.js // 获取应用实例 const app = getApp() // Page({ // data: { // motto: 'Hello World', // userInfo: {}, // hasUserInfo: false, // canIUse: wx.canIUse('button.open-type.getUserInfo'), // canIUseGetUserProfile: false, // canIUseOpenData: wx.canIUse('open-data.type.userAvatarUrl') && wx.canIUse('open-data.type.userNickName') // 如需尝试获取用户信息可改为false // }, // // 事件处理函数 // bindViewTap() { // wx.navigateTo({ // url: '../logs/logs' // }) // }, // onLoad() { // if (wx.getUserProfile) { // this.setData({ // canIUseGetUserProfile: true // }) // } // }, // getUserProfile(e) { // // 推荐使用wx.getUserProfile获取用户信息,开发者每次通过该接口获取用户个人信息均需用户确认,开发者妥善保管用户快速填写的头像昵称,避免重复弹窗 // wx.getUserProfile({ // desc: '展示用户信息', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写 // success: (res) => { // console.log(res) // this.setData({ // userInfo: res.userInfo, // hasUserInfo: true // }) // } // }) // }, // getUserInfo(e) { // // 不推荐使用getUserInfo获取用户信息,预计自2021年4月13日起,getUserInfo将不再弹出弹窗,并直接返回匿名的用户个人信息 // console.log(e) // this.setData({ // userInfo: e.detail.userInfo, // hasUserInfo: true // }) // } // }) Page({ data: { back: 'back', C: 'C', addSub: 'addSub', add: '+', sub: '-', mut: '×', div: '÷', equ: '=', percent: '%', dot: '.', id0: '0', id1: '1', id2: '2', id3: '3', id4: '4', id5: '5', id6: '6', id7: '7', id8: '8', id9: '9', result: '0', valiBackOfArray: ['+', '-', '×', '÷', '.'], completeCalculate: false }, // 计算结果 calculate: function (str) { // 判断是不是有负数 var isNagativeNum = false; if (str.charAt(0) == '-') { str = str.replace('-', '').replace('(', '').replace(')', ''); isNagativeNum = true; } // 对字符串解析并运算 var addArray = str.split('+'); var sum = 0.0; for (var i = 0; i < addArray.length; i++) { if (addArray[i].indexOf('-') == -1) { if (addArray[i].indexOf('×') != -1 || addArray[i].indexOf('÷') != -1) sum += this.calculateMutDiv(addArray[i]); else sum += Number(addArray[i]); } else { var subArray = addArray[i].split('-'); var subSum = 0; if (subArray[0].indexOf('×') != -1 || subArray[0].indexOf('÷') != -1) subSum = this.calculateMutDiv(subArray[0]); else subSum = Number(subArray[0]); for (var j = 1; j < subArray.length; j++) { if (subArray[i].indexOf('×') != -1 || subArray[i].indexOf('÷') != -1) subSum -= this.calculateMutDiv(subArray[j]); else subSum -= Number(subArray[j]); } sum += subSum; } } if (isNagativeNum) return (-sum).toString(); else return sum.toString(); }, // 分块乘除运算 calculateMutDiv: function (str) { var addArray = str.split('×'); var sum = 1.0; for (var i = 0; i < addArray.length; i++) { if (addArray[i].indexOf('÷') == -1) { sum *= Number(addArray[i]); } else { var subArray = addArray[i].split('÷'); var subSum = Number(subArray[0]); for (var j = 1; j < subArray.length; j++) { subSum /= Number(subArray[j]); } sum *= subSum; } } return sum; }, // 是否以运算符结尾 isOperatorEnd: function (str) { for (var i = 0; i < this.data.valiBackOfArray.length; i++) { if (str.charAt(str.length - 1) == this.data.valiBackOfArray[i]) return true; } return false; }, clickButton: function (event) { if (this.data.result == 0) { if (event.target.id == 'back' || event.target.id == 'C' || event.target.id == 'addSub' || event.target.id == '%' || event.target.id == '+' || event.target.id == '-' || event.target.id == '×' || event.target.id == '÷' || event.target.id == '=') return; this.setData({ result: event.target.id }); } else if (event.target.id == 'back') { this.setData({ result: this.data.result.length == 1 ? '0' : this.data.result.substring(0, this.data.result.length - 1) }); } else if (event.target.id == 'C') { this.setData({ result: '0' }); } else if (event.target.id == 'addSub') { var r = this.data.result; if (this.isOperatorEnd(r)) return; if (r.charAt(0) == '-') this.setData({ result: r.replace('-', '').replace('(', '').replace(')', '') }); else this.setData({ result: '-(' + r + ')' }); } else if (event.target.id == '%') { } else if (event.target.id == '=') { if (this.isOperatorEnd(this.data.result)) return; this.setData({ result: this.calculate(this.data.result) }); this.setData({ completeCalculate: true }); } else { if (this.isOperatorEnd(this.data.result) && this.isOperatorEnd(event.target.id)) return; // 如果计算结果有小数点,直到输入运算符前不能再输入小数点 if (this.data.completeCalculate && this.data.result.indexOf('.') != -1 && event.target.id == '.') return; for (var i = 0; i < this.data.valiBackOfArray.length - 1; i++) { if (this.data.valiBackOfArray[i] == event.target.id) { this.setData({ completeCalculate: false }); break; } } this.setData({ result: this.data.result + event.target.id }); } } })
{
"usingComponents": {},
"navigationBarTitleText":"计算器",
"navigationBarBackgroundColor":"#1f67a0",
"navigationBarTextStyle":"white"
}
/**index.wxss**/ /* .userinfo { display: flex; flex-direction: column; align-items: center; color: #aaa; } .userinfo-avatar { overflow: hidden; width: 128rpx; height: 128rpx; margin: 20rpx; border-radius: 50%; } .usermotto { margin-top: 200px; } */ page { width: 100%; height: 100%; } .test-bg { position: fixed; bottom: 0; } .screen { position: fixed; color: #000000; font-size: 30px; bottom: 780rpx; text-align: right; width: 730rpx; word-wrap: break-word; } .btnGroup { display: flex; /*弹性显示结构*/ flex-direction: row; /*横向显示*/ } .item { width: 192rpx; line-height: 148rpx; border-radius: 5%; text-align: center; } .orange { /* 前景色 */ color: #000000; border: solid 1rpx #ffffff; /* 背景色 */ background: #f78d1d; } .blue { /* 前景色 */ color: #000000; border: solid 1rpx #ffffff; /* 背景色 */ background: #0095cd; }
该小程序还有待完善的地方,还请各位大佬多多指教。
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。