微信小程序 简易计算器实现代码实例
作者:EN_T 发布时间:2024-07-07 11:24:52
标签:微信,小程序,简易,计算器
这篇文章主要介绍了微信小程序 简易计算器实现代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
只能进行简单的运算
效果图如下:
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": {}
}
其中有一些小错误,望大神指正!!!!
来源:https://www.cnblogs.com/en1302coling/p/11439305.html


猜你喜欢
- IP合法性校验是开发中非常常用的,看起来很简单的判断,作用确很大,写起来比较容易出错,今天我们来总结一下,看一下3种常用的IP地址合法性校验
- 前言OpenCV是图像处理常用的库,作为初学者,往往从图片的读取、保存、查询图片的信息开始,下面将分享Python下OpenCV的一些基本使
- python中的paramiko模块是用来实现ssh连接到远程服务器上的库,在进行连接的时候,可以用来执行命令,也可以用来上传文件。1、得到
- Golang 是一种简洁高效的编程语言,拥有强大的并发支持和丰富的标准库。在 Golang 中,计时器(timer)是一种常见的工具,用于定
- 有时候我们会在页面上显示用户的所在地区,这个原理是:先得到用户的IP,然后去查询将IP转换成一个数值,最后去查这个数值所在的范围,来得到用户
- 先简单说一下MP3的ID3 标记,因为主要是操作这个玩意MP3最开始的时候没有我们今天看到的那样,有歌手、年代,专集等等信息只有一些简单的参
- OR、in和union all 查询效率到底哪个快?网上很多的声音都是说union all 快于 or、in,因为or、in会导致全表扫描,
- 前天不小心把硬盘格式化了,丢了好多照片,后来用Recuva这款软件成功把文件恢复过来,可是恢复的文件中有好多重复的文件和无法打开的图片,所以
- 要处理文本数据,需要比数字类型的数据更多的清理步骤。为了从文本数据中提取有用和信息,通常需要执行几个预处理和过滤步骤。Pandas 库有许多
- 简介Puppeteer是Google开发并开源的一款工具,可用代码驱动浏览器操作。由于诸多优秀的特性,Puppeteer常被用在爬虫与自动化
- 目录property属性property属性的定义和调用要注意一下几点:具体实例property属性的有两种方式装饰器方式旧式类新式类注意类
- 【源码GitHub地址】:点击进入1. 问题描述之前写了一篇关于《pytorch Dataset, DataLoader产生自定义的训练数据
- 一、时间日期基本介绍时间日期类型在Python中主要有两个模块:time模块 和 datetime模块time模块: 是基于Unix Tim
- 在最古老的JavaScript浏览器里注册事件只能通过内联模式。自从DHTML从根本上改变了你操作页面的方法,事件的注册就必须有扩展性而且要
- function GetRequest() { var
- MySQL有多种存储引擎:MyISAM、InnoDB、MERGE、MEMORY(HEAP)、BDB(BerkeleyDB)、EXAMPLE、
- 如何在网上查找链接? 见下:findlinks.html<html><head>
- 一、首先理解下面几个函数设置变量 length()函数 char_length() replace() 函数 max() 函数1.1、设置变
- 我们知道在超级链接的title属性中,是不支持html代码的,我们只能使用文本来处理提示信息。当然借助js可以做出很好的效果。这里讲一下如何
- 这篇文章主要介绍了调试Django时打印SQL语句的日志代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值