小程序计算器一个

wxml:

<view class="calculator-container">
  <!-- 标题 -->
  <view class="cal-title">
    <view class="cal-title-h1">CALCULATOR</view>
    <view class="cal-title-h2">-小桐桐计算器-</view>
  </view>
  <!-- 计算器显示框 -->
  <view class="cal-show">
    <view class="cal-show-up">{
  {expression}}</view>
    <view class="cal-show-down">{
  {result}}</view>
  </view>
  <!-- 键盘输入框 -->
  <view class="cal-keyboard">
    <!-- 第一行 -->
    <view class="keyboard-tr1">
      <view class="key tr1-td1" id="clearRem" bindtap="bindClearRem">MC</view>
      <view class="key tr1-td2" id="addRem" bindtap="bindAddToRem">MR</view>
      <view class="key tr1-td3" id="clear" bindtap="bindClickButton">C</view>
      <view class="key tr1-td4" id="back" bindtap="bindClickButton">CE</view>
    </view>
    <!-- 第二行 -->
   <view class="keyboard-tr2">
      <view class="key tr2-td1" id="addRem"  bindtap="bindAddUpRem">M+</view>
      <view class="key tr2-td2" id="lessRem"  bindtap="bindLessRem">M-</view>
      <view class="key tr2-td3" id="rem"  bindtap="bindClickButton">%</view>
      <view class="key tr2-td4" id="div"  bindtap="bindClickButton">/</view>
    </view>
    <!-- 第三行 -->
    <view class="keyboard-tr3">
      <view class="key tr3-td1" id="7" bindtap="bindClickButton">7</view>
      <view class="key tr3-td2" id='8' bindtap="bindClickButton">8</view>
      <view class="key tr3-td3" id="9" bindtap="bindClickButton">9</view>
      <view class="key tr3-td4" id="mul" bindtap="bindClickButton">X</view>
    </view>
    <!-- 第四行 -->
    <view class="keyboard-tr4">
      <view class="key tr4-td1" id="4" bindtap="bindClickButton">4</view>
      <view class="key tr4-td2" id="5" bindtap="bindClickButton">5</view>
      <view class="key tr4-td3" id="6" bindtap="bindClickButton">6</view>
      <view class="key tr4-td4" id="less" bindtap="bindClickButton">-</view>
    </view>
    <!-- 第五行 -->
    <view class="keyboard-tr5">
      <view class="tr5-left">
        <view class="tr5-tr1">
          <view class="key2 tr5-tr1-td1" id="1" bindtap="bindClickButton">1</view>
          <view class="key2 tr5-tr1-td2" id="2" bindtap="bindClickButton">2</view>
          <view class="key2 tr5-tr1-td3" id="3" bindtap="bindClickButton">3</view>
        </view>
        <view class="tr5-tr2">
          <view class="key2 tr5-tr2-td1" id="0" bindtap="bindClickButton">0</view>
          <view class="key2 tr5-tr2-td2" id="dot" bindtap="bindClickButton">.</view>
          <view class="key2 tr5-tr2-td3" id="equal" bindtap="bindEqual">=</view>
        </view>
      </view>
      <view class="tr5-right" id="add" bindtap="bindClickButton"> +</view>
    </view>
  </view>
</view>

wxss:

/**index.wxss**/
@import '../../style/font_led.wxss';

.calculator-container{
  position: fixed;
  top:0;
  bottom: 0;
  left: 0;
  right: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  box-sizing: border-box;
  margin: 10rpx 10rpx;
  padding: 0 35rpx;
  box-shadow: 2rpx 2rpx 2rpx 2rpx rgb(177, 168, 168);
  background-color: rgba(89, 89, 89,0.4);
}

.cal-title{
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 30rpx 0;

}
.cal-title-h1{
  font-size: 70rpx;
  color: #f2f2f2;
}
.cal-title-h2{
  font-size: 30rpx;
  color: #8c8c8c;
}

/****************************** show ********************************************/
.cal-show{
  width: 100%;
  height: 200rpx;
  background-color: #000;
  border-radius: 15rpx;
  color: #fff;
  box-sizing: border-box;
  font-family: LED;
  box-shadow: 1px 1px 3px rgba(242, 242, 242,0.5);
}
.cal-show-up{
  width: 100%;
  height: 40%;
  text-align: left;
  padding-right: 20rpx;
  box-sizing: border-box;
  line-height: 80rpx;
  font-size: 60rpx;
}
.cal-show-down{
  width: 100%;
  height: 60%;
  
  text-align: right;
  padding-right: 20rpx;
  line-height: 120rpx;
  box-sizing: border-box;
  font-size: 110rpx;
  overflow: hidden;
}
.cal-show-text{
  width: 100%;
  height: 100%;
  background-color: red;

}

/* keyboard */

.cal-keyboard{
  width: 100%;
  padding: 30rpx 0;
}
.keyboard-tr1, .keyboard-tr2, .keyboard-tr3, .keyboard-tr4 {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  padding-top: 20rpx;
}

.key{
  width: 20%;
  height: 100rpx;
  border-radius: 10rpx;
  color: #bfbfbf;
  font-size: 40rpx;
  text-align: center;
  line-height: 100rpx;
  box-shadow: 5rpx 5rpx  #000;
  background-image: linear-gradient(#404040	, #0d0d0d,#000,#0d0d0d,#404040	)
}

.key:active{
  background: #000;
  font-size: 60rpx;
  color: #9999ff;
}
.key2:active{
  background: #000;
  font-size: 60rpx;
  color: #9999ff;
}
.keyboard-tr5{
  width: 100%;
  height: 200rpx;
  clear: both;

}

.tr5-left{
  float: left;
  width: 73.33%;


}
.tr5-right{
  float: right;
  width: 20%;
  background-color: blue;
}
.tr5-tr1, .tr5-tr2{
  padding-top: 20rpx;
  width: 100%;
  display: flex;
  justify-content: space-between;
}
.key2{

  width: 27.77%;
  height: 100rpx;
  border-radius: 10rpx;
  color: #bfbfbf;
  text-align: center;
  line-height: 100rpx;
  box-shadow: 5rpx 5rpx  #000;
  background-image: linear-gradient(#404040	, #0d0d0d,#000,#0d0d0d,#404040	)
}
.tr5-right{
  margin-top: 20rpx;
  height: 220rpx;
  border-radius: 10rpx;
  color: #bfbfbf;
  text-align: center;
  line-height: 220rpx;
  box-shadow: 5rpx 5rpx  #000;
  background-image: linear-gradient(#404040	, #0d0d0d,#000,#0d0d0d,#404040	)
}

.tr5-right:active{
  background: #000;
  font-size: 60rpx;
  color: #9999ff;
}





 

js:

//index.js
//获取应用实例
const app = getApp()

Page({
  data: {
    result:'0',         //showDwon
    expression:'',    //showUp

    dotFlag:false, //小数点标记

    equalFlag: true,
  },
  //事件处理函数

  bindClickButton: function(e){
    // 获取键盘字符
   var str = e.currentTarget.id;

   var res = this.data.result;

  // 保证每次数只有一个小数点
   var dotFlag = this.data.dotFlag;

   // 判断字符是否数字, js中字符与数字比较,字符自动转换为数字,不能转换的输出NaN;
    if( str >= '0' && str <= '9'){

      if(res === '0' || !this.data.equalFlag ){
        res =  str;
      }else{
        res  += str;
      }
      this.setData({
        result: res,
        expression:'',
        equalFlag:true
      })
    } else if( str == 'dot' && !dotFlag && !isNaN(res.charAt(res.length-1)) ){

      this.data.result += '.';
      this.setData({
        result: this.data.result,
        dotFlag: true
      });
    } else if( str == 'clear' ){
      this.setData({
        expression: '',
        result : '0'
      });
    } else if( str == 'back'){
      if( res.length > 1){
        res = res.substr(0,res.length-1);
      }else{
        res = '0'
      }
      this.setData({
        result : res
      })
    } else if( str == "add" || str == "less" || str == "mul" || str ==
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值