【微信小程序】微信开发小项目+简易计算器+代码

  1. 效果图:
    2.在这里插入图片描述
    index.json代码:
{
  "usingComponents": {},
  "navigationBarBackgroundColor": "#fff",
  "navigationBarTitleText": "计算器",
  "navigationBarTextStyle": "black"
}

3.index.wxss


page{
  display: flex;
  flex-direction: column;
  height: 100%
}
.result{
  flex: 1;
  background: #f3f6fe;
}
.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;
 }
 .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;
 }

4.index.wxml

<view class="result">
<view class=" result-num">{{num}}</view>
<view class="result-op">{{op}}</view>
</view>
<view class="btns">
<view>
<view hover-class="bg" bindtap="resetBtn">C</view>
<view hover-class="bg" bindtap="delBtn">DEL</view>
<view hover-class="bg" bindtap="opBtn" data-val="%">%</view>
<view hover-class="bg" bindtap="opBtn" data-val="/">÷</view>
</view>
<view>
<view hover-class="bg" bi ndtap="numBtn" data-val="7"> 7</view>
<view hover-class="bg" bindtap="numBtn" data-val="8">8</view>
<view hover-class="bg" bindtap="numBtn" data-val="9">9</view>
<view hover-class="bg" bindtap="opBtn" data-val="*">x</view>
</view>
<view>
<view hover-class= "bg" bindtap="numBtn" data-val="4">4</view>
<view hover-class="bg" bindtap="numBtn" data-val="5">5</view>
<view hover-class="bg" bindtap="numBtn" data-val="6">6</view>
<view hover-class="bg" bindtap="opBtn" data-val="-">-</view>
</view>
<view>
<view hover-class="bg" bindtap="numBtn" data-val="1">1</view>
<view hover-class="bg" bindtap= "numBtn" data-val="2">2</view>
<view hover-class="bg" bindtap="numBtn" data-val="3">3</view>
<view hover-class="bg" bindtap="opBtn" data-val="+">+</view>
</view>
<view>
<view hover-class="bg" bindtap="numBtn" data-val="0">0</view>
<view hover-class="bg" bindtap= "dotBtn">.</view>
<view hover-class="bg" bindtap="opBtn" data-val="=">=</view>
</view>
</view>

5.index.js

//index.js
//获取应用实例
const app = getApp()
Page({
  data: {
    num:'',
    op:'+' 
  },
 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)

 this.setData({ op: e.target.dataset.val})
 if (this.isClear) {
return
 }
 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}

  this.setData({num: this.result + '' }) 
 },

  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+'.'})
  },
 delBtn: function() {
 var num = this.data.num.substr(0,this.data.num.length - 1)
this.setData({ num: num === ''?'0' : num })
 },
 resetBtn: function () {
    this.result = null
    this.isClear = false
    this.setData({ num: '0', op: '' })
  },
})
  • 15
    点赞
  • 65
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值