微信小程序——简单的计算器

Posted en1302coling

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微信小程序——简单的计算器相关的知识,希望对你有一定的参考价值。

只能进行简单的运算

效果图如下:

技术图片

cal.wxml

<view class="screen">result</view>
<view class="content">  
  <view class="buttonGroup">
    <button id="id1" bindtap="clickButton" class="buttonitem color1" hover-class="shadow">清除</button>
    <button id="id2" bindtap="clickButton" class="buttonitem color1" hover-class="shadow">回退</button>
    <button id="id3" bindtap="time" class="buttonitem color1" hover-class="shadow">
    <icon type="waiting" color="#66CC33"></icon>
    </button>
    <button id="id4" bindtap="clickButton" class="buttonitem color2" hover-class="shadow1">÷</button>
  </view>

  <view class="buttonGroup"> 
    <button id="id17" bindtap="clickButton" class="buttonitem color3" hover-class="shadow7">7</button>
    <button id="id18" bindtap="clickButton" class="buttonitem color3" hover-class="shadow8">8</button>
    <button id="id19" bindtap="clickButton" class="buttonitem color3" hover-class="shadow9">9</button>
    <button id="id5" bindtap="clickButton" class="buttonitem color2" hover-class="shadow1">×</button>
  </view>

  <view class="buttonGroup">
    <button id="id14" bindtap="clickButton" class="buttonitem color3" hover-class="shadow4">4</button>
    <button id="id15" bindtap="clickButton" class="buttonitem color3" hover-class="shadow5">5</button>
    <button id="id16" bindtap="clickButton" class="buttonitem color3" hover-class="shadow6">6</button>
    <button id="id6" bindtap="clickButton" class="buttonitem color2" hover-class="shadow1">-</button>
  </view>

  <view class="buttonGroup">
    <button id="id11" bindtap="clickButton" class="buttonitem color3" hover-class="shadow1">1</button>
    <button id="id12" bindtap="clickButton" class="buttonitem color3" hover-class="shadow2">2</button>
    <button id="id13" bindtap="clickButton" class="buttonitem color3" hover-class="shadow3">3</button>
    <button id="id7" bindtap="clickButton" class="buttonitem color2" hover-class="shadow1">+</button>
  </view>

  <view class="buttonGroup">
    <button id="id10" bindtap="clickButton" class="buttonitem1 color3" hover-class="shadow0">0</button>
    <button id="id8" bindtap="clickButton" class="buttonitem1 color2" hover-class="shadow1">.</button>
    <button id="id9" bindtap="equal" class="buttonitem1 color2" hover-class="shadow1">=</button>
  </view>
</view>  

cal.wxss

/* pages/cal/cal.wxss */
page
  background: #000000;

.screen
  position: fixed;
  color: #ffffff;
  font-size: 30px;
  bottom: 780rpx;
  text-align: right;
  width: 730rpx;
  word-wrap: break-word;

.content
  position: fixed;
  bottom: 0;

.buttonGroup
  display: flex;
  flex-direction: row;

.buttonitem
  text-align: center;
  line-height: 148rpx;
  width: 192rpx;
  border-radius: 0;

.buttonitem1
  width: 255rpx;
  text-align: center;
  line-height: 148rpx;
  border-radius: 0;

icon
  position: absolute;
  top: 30rpx;
  left: 67rpx;

.color1
  background: #CCFF99;

.color2
  background: #FFFF99;

.color3
  background: rgb(167, 223, 241);

.shadow
  background: #88e676;

.shadow0
  background: rgb(149, 118, 243);

.shadow1
  background: #FFCC66;

.shadow2
  background: #99FF00;

.shadow3
  background: #FF9999;

.shadow4
  background: #00CC66;

.shadow5
  background: #00CCFF;

.shadow6
  background: rgb(248, 80, 80);

.shadow7
  background: #FFCCFF;

.shadow8
  background: #CCCCCC;

.shadow9
  background: #CCFFFF;

cal.js

// pages/cal/cal.js
Page(
  data: 
    result:"0",
    id1:"clear",
    id2:"back",
    id3:"time",
    id4:"div",
    id5:"mul",
    id6:"sub",
    id7:"add",
    id8:"dot",
    id9:"eql",
    id10:"num_0",
    id11:"num_1",
    id12:"num_2",
    id13:"num_3",
    id14:"num_4",
    id15:"num_5",
    id16:"num_6",
    id17:"num_7",
    id18:"num_8",
    id19:"num_9",
    buttonDot:false,
  ,
  clickButton: function (e) 
    console.log(e);
    var buttonVal = e.target.id;
    var res = this.data.result;
    var newbuttonDot=this.data.buttonDot;
    var sign;
    if (buttonVal >= "num_0" && buttonVal <= "num_9") 
      var num=buttonVal.split(‘_‘)[1];
      if (res == "0" || res.charAt(res.length -(length-1)) == "=") 
        res = num;
      
      else 
        res = res + num;
      
    
    else
      if(buttonVal=="dot")
      
        if(!newbuttonDot)
        
          res = res + ‘.‘;
        
      
      else if(buttonVal=="clear")
      
        res=‘0‘;
      
      else if(buttonVal=="back")
      
        var length=res.length;
        if(length>1)
        
          res=res.substr(0,length-1);
        
        else
          res=‘0‘;
        
      
      else if (buttonVal == "div" || buttonVal == "mul" || buttonVal == "sub" || buttonVal == "add")
      
        switch(buttonVal)
          case "div":
            sign =‘÷‘;
            break;
          case "mul":
            sign =‘ב;
            break;
          case "sub":
            sign=‘-‘;
            break;
          case "add":
            sign=‘+‘;
            break;
        
        if(!isNaN(res.charAt(res.length-1)))
        
          res=res+sign;
        
      
    
    this.setData(
      result: res,
      buttonDot:newbuttonDot,
    );
  ,
  equal: function(e)
    var str=this.data.result;
    var item= ‘‘;
    var strArray = [];
    var temp=0;
    for(var i=0;i<=str.length;i++)
      var s=str.charAt(i);
      if((s!=‘‘ && s>=‘0‘ && s<=‘9‘) || s==‘.‘)
        item=item+s;
      
      else
        strArray[temp]=item;
        temp++;
        strArray[temp]=s;
        temp++;
        item=‘‘;
      
    
    if(isNaN(strArray[strArray.length-1]))
    
      strArray.pop();
    
    var num;
    var res=strArray[0]*1;
    for(var i=1;i<=strArray.length;i=i+2)
      num=strArray[i+1];
      switch(strArray[i])
        case "-":
          res = res - num;
          break;
        case "+":
          res = res + num;
          break;
        case "×":
          res = res * num;
          break;
        case "÷":
        if(num!=‘0‘)
        
          res = res / num;
        
        else
        
          res =‘∞‘;
          break;
         
          break;
      
    
    this.setData(
      result:‘=‘+res,
    );
  ,
  time:function(e)
    var util=require("../../utils/util.js");
    var time=util.formatTime(new Date());
    this.setData(
      result:time
    );
  

)

cal.json


  "navigationBarBackgroundColor": "#FF9900",
  "navigationBarTitleText": "EN计算器",
  "usingComponents": 

其中有一些小错误,望大神指正!!!!

以上是关于微信小程序——简单的计算器的主要内容,如果未能解决你的问题,请参考以下文章

微信小程序入门学习-- 简易Demo:计算器

微信小程序--简易计算器

微信小程序--简易计算器

微信小程序在线视频教程观看

微信小程序中分数显示实现方法

微信小程序的简单应用-Todolist