微信小程序-计算器

初次尝试小程序,简单的实现计算器功能

首先:WXML结构

< view class= "content">
< view class= "show-con">
< view class= "result">{{msg}} </ view >
</ view >
< view class= "btn-group">
< view class= "item" bindtap= 'getContent' id= "{{id1}}">AC </ view >
< view class= "item" bindtap= 'getContent' id= "{{id2}}">+/- </ view >
< view class= "item" bindtap= 'getContent' id= "{{id3}}">% </ view >
< view class= "item orange" bindtap= 'getContent' id= "{{id4}}">÷ </ view >
</ view >
< view class= "btn-group">
< view class= "item" bindtap= 'getContent' id= "{{id5}}">7 </ view >
< view class= "item" bindtap= 'getContent' id= "{{id6}}">8 </ view >
< view class= "item" bindtap= 'getContent' id= "{{id7}}">9 </ view >
< view class= "item orange" bindtap= 'getContent' id= "{{id8}}">x </ view >
</ view >
< view class= "btn-group">
< view class= "item" bindtap= 'getContent' id= "{{id9}}">4 </ view >
< view class= "item" bindtap= 'getContent' id= "{{id10}}">5 </ view >
< view class= "item" bindtap= 'getContent' id= "{{id11}}">6 </ view >
< view class= "item orange" bindtap= 'getContent' id= "{{id12}}">- </ view >
</ view >
< view class= "btn-group">
< view class= "item" bindtap= 'getContent' id= "{{id13}}">1 </ view >
< view class= "item" bindtap= 'getContent' id= "{{id14}}">2 </ view >
< view class= "item" bindtap= 'getContent' id= "{{id15}}">3 </ view >
< view class= "item orange" bindtap= 'getContent' id= "{{id16}}">+ </ view >
</ view >
< view class= "btn-group">
< view class= "item zero" bindtap= 'getContent' id= "{{id17}}">0 </ view >
< view class= "item" bindtap= 'getContent' id= "{{id18}}">. </ view >
< view class= "item orange" bindtap= 'getContent' id= "{{id19}}">= </ view >
</ view >
</ view >

其次,WXSS  css表现

/* pages/new/new.wxss */
.content{
width: 100%;
display: flex;
flex-direction: column;
align-items: item;
box-sizing: border-box
}
.show-con{
display: flex;
flex-direction: row;
height: 200 rpx;
background: #000;
border-radius: 10 rpx
}
.result{
height: 300 rpx;
width: 100%;
color: #fff;
font-size: 40 rpx;
text-align: right;
line-height: 300 rpx;
}
.btn-group{
display: flex;
flex-direction: row;
width: 700 rpx;
margin: 10 rpx 20 rpx 0 rpx 20 rpx
}
.item{
display: inline-block;
width: 160 rpx;
height: 160 rpx;
background: #ccc;
border-radius: 50%;
text-align: center;
line-height: 160 rpx;
margin: 8.75 rpx
}
.orange{
color: #fff;
background: #ffd700;
font-weight: bold
}
.zero{
width: 337.5 rpx;
border-radius: 80 rpx
}

最后,js交互

const util = require( '../../utils/util.js')
const rpn = require( '../../utils/rpn.js')
Page({
data:{
msg: '0',
id1: 'AC',
id2: '+/-',
id3: '%',
id4: '÷',
id5: '7',
id6: '8',
id7: '9',
id8: '*',
id9: '4',
id10: '5',
id11: '6',
id12: '-',
id13: '1',
id14: '2',
id15: '3',
id16: '+',
id17: '0',
id18: '.',
id19: '=',
},
getContent: function(e){
var id = e.target.id;
var initData = this.data.msg;
if (id == this.data.id1){
this.setData({
msg: 0
});
} else if( id == this.data.id2){ //取反
if (initData == "0"){
return
}
var firstWord = initData.charAt( 0);
if (firstWord == "-"){
initData = initData.substr( 1);
} else{
initData = "-" + initData;
}
this.setData({
msg: initData
});
} else if(id == this.data.id3){ //百分比运算
if (initData == 0){
return;
} else{
initData = initData/ 100;
this.setData({
msg: initData
});
}
} else if( id == this.data.id19){
//如果只有一个数字且是0,则直接返回
if( initData == 0){
return;
}
//判断最后一位是否为是有效数字
var lastWord = initData.charAt(initData.length - 1);
if (isNaN(lastWord)) {
return;
}
var calData = rpn.calCommonExp(initData);
console.log(calData);
this.setData({
msg: calData
});
}
else{
var total;
if (initData == 0){
total = id
}
else{
total = initData + id;
}
this.setData({
msg: total
});
}
}
})

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值