微信小程序:简单计算器

对于才接触小程序不久的人来说,想要直接上手一个实用性强的项目难度很大,想要快速熟悉小程序的使用,我们可以先尝试着做一个简单的计算器。

运行截图


计算器对于界面美观的要求并不高,只是一些view以及button控件的组合,所以并不需要在界面上费很多功夫。重要的是逻辑层,之所以选择计算器作为上手的第一个项目,因为计算器的逻辑可简可繁,完全可以适应新手对小程序的掌握程度。

主要代码

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,is_time:false},clickButton: function (e) {console.log(e);var buttonVal = e.target.id;var res = this.data.result;if(this.data.is_time==true){res=0}var newbuttonDot=this.data.buttonDot;var sign;if (buttonVal >= "num_0" && buttonVal <= "num_9") {var num=buttonVal.split('_')[1];if (res == "0" || ((res.length-0) -(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"){if(res.length){}else{res=JSON.stringify(res)}  var is_sign=res.substr(res.length-1,res.length)if(is_sign=="+"||is_sign=="-"||is_sign=="×"||is_sign=="÷"){res=res.substr(0,res.length-1);}switch(buttonVal){case "div":sign ='÷';break;case "mul":sign ='×';break;case "sub":sign='-';break;case "add":sign='+';break;}if(!isNaN(res.length)){res.length-1;res=res+sign;}}}this.setData({is_time:false,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-0)- (num-0);break;case "+":res = (res-0) + (num-0);break;case "×":res = (res-0)* (num-0);break;case "÷":if(num!='0'){res = (res-0)/ (num-0);}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,is_time:true});}})

wxml:

<!--index.wxml-->
<view class="project_name">简单计算器</view>
<view class="screen_content"><view class="screen">{{result}}</view>
</view>
<view class="content"> <view class="buttonGroup"><button id="{{id1}}" bindtap="clickButton" class="buttonitem color" hover-class="shadow">C</button><button id="{{id2}}" bindtap="clickButton" class="buttonitem color" hover-class="shadow">BS</button><button id="{{id3}}" bindtap="time" class="buttonitem color" hover-class="shadow"><icon type="waiting" color="#66CC33"></icon></button><button id="{{id4}}" bindtap="clickButton" class="buttonitem color" hover-class="shadow">÷</button></view> <view class="buttonGroup"> <button id="{{id17}}" bindtap="clickButton" class="buttonitem color" hover-class="shadow">7</button><button id="{{id18}}" bindtap="clickButton" class="buttonitem color" hover-class="shadow">8</button><button id="{{id19}}" bindtap="clickButton" class="buttonitem color" hover-class="shadow">9</button><button id="{{id5}}" bindtap="clickButton" class="buttonitem color" hover-class="shadow">×</button></view><view class="buttonGroup"><button id="{{id14}}" bindtap="clickButton" class="buttonitem color" hover-class="shadow">4</button><button id="{{id15}}" bindtap="clickButton" class="buttonitem color" hover-class="shadow">5</button><button id="{{id16}}" bindtap="clickButton" class="buttonitem color" hover-class="shadow">6</button><button id="{{id6}}" bindtap="clickButton" class="buttonitem color" hover-class="shadow">-</button></view><view class="buttonGroup"><button id="{{id11}}" bindtap="clickButton" class="buttonitem color" hover-class="shadow">1</button><button id="{{id12}}" bindtap="clickButton" class="buttonitem color" hover-class="shadow">2</button><button id="{{id13}}" bindtap="clickButton" class="buttonitem color" hover-class="shadow">3</button><button id="{{id7}}" bindtap="clickButton" class="buttonitem color" hover-class="shadow">+</button></view><view class="buttonGroup"><button id="{{id10}}" bindtap="clickButton" class="buttonitem1 color" hover-class="shadow">0</button><button id="{{id8}}" bindtap="clickButton" class="buttonitem1 color" hover-class="shadow">.</button><button id="{{id9}}" bindtap="equal" class="equal" hover-class="shadow">=</button></view>
</view>

wxss:

/**index.wxss**/
page{background: #f5f5f5;}.project_name{position:absolute;top:25px;width:100%;text-align: center;font-size: 30px;}.screen_content{position: fixed;color: #1b1717;background: #fff;font-size: 40px;bottom: 390px;text-align: right;height:100px;width: 100%;word-wrap: break-word;border-top:1px solid #a8a8a8;border-bottom:1px solid #a8a8a8;}.screen{position: absolute;font-size: 40px;text-align: right;bottom:0px;width: 96%;left:2%;word-wrap: break-word;}.content{position: fixed;bottom: 0;}.buttonGroup{display: flex;flex-direction: row;}.buttonitem{text-align: center;line-height: 120rpx;width: 25%;border-radius: 0;}.buttonitem1{width: 192rpx;text-align: center;line-height: 120rpx;border-radius: 0;}icon{position: absolute;top: 20%;left: 67rpx;}.color{background: #fff;}.equal{width: 380rpx;text-align: center;line-height: 120rpx;border-radius: 0;background: #fff;}.shadow{background: #e9ebe9;}

后记

我这里只是对加减程进行了粗略的处理,但是这样的一个计算器也已经具备了初步的功能,随着我们掌握程度的加深,我们还可以添加平方,开方等更复杂的功能,从而熟练掌握小程序的开发。

微信小程序:简单计算器相关推荐

  1. 微信小程序——简单计算器

    实现代码: <!--pages/computer.wxml--> <view class="result"><view class="res ...

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

    代码地址如下: http://www.demodashi.com/demo/14210.html 一.前期准备工作 软件环境:微信开发者工具 官方下载地址:https://mp.weixin.qq.c ...

  3. 微信小程序简单好看的表格器

    微信小程序简单好看的表格 1.数据和样式 2.带纵向滑动条的列表纯色简单表格 3.带纵向滑动条的列表间隔色简单表格 微信小程序目前没有 table 标签,需要用到表格,必须自己处理.想要一个简单的比较 ...

  4. 第十五周——微信小程序简单的界面

    第十五周--微信小程序简单的界面 前言 一.Pages 二.TabBar 总结 前言 本篇文章是向大家分享一下怎样简单制作一个微信小程序的界面 一.Pages 这里要写的是小程序里面你所创建界面的路径 ...

  5. 微信小程序简单的信息表格的提交到数据库(新手篇)(云端数据库)

    微信小程序简单的信息表格的提交到数据库(新手专属)(云端数据库) 大家好,我是小陈,一名大一的编码爱好者,,,,,刚刚结束了大一的学习生活,也总结出了一点编码的经验,希望与大家一起分享.我是学习物联网 ...

  6. 微信小程序--简单页面跳转

    微信小程序--简单页面跳转 例如:点击一个text ,跳转入一个新的页面blueberry.wxml 首先对text 设置监听事件 <view bindtap="toast" ...

  7. 【微信小程序系列】微信小程序简单的实现发送订阅信息

    [微信小程序系列]微信小程序简单的实现发送订阅信息 项目结构 两个云函数一个页面 获取模板 注:详细内容中的参数很重要,一会要在云函数里用 代码 app.js // app.js App({onLau ...

  8. 小程序 微信统计表格_微信小程序简单的数据表格及查询功能

    简介: 此项目是一个前后端分离的小demo, 开发工具:idea+微信小程序开发工具 前端:界面布局样式和js的跳转 后端:依靠SpringBoot的业务逻辑层 项目的码云地址: 微信开发工具的使用和 ...

  9. 微信小程序简单日历组件

    微信小程序简单的日历组件 代码: <!--日历组件--> <view class='cld'><view class="cld-top">< ...

  10. 微信小程序-ios计算器简易版

    微信小程序-ios计算器 图片: 核心代码 index.js: Page({ data: { value: null, // 上次计算后的结果,null表示没有上次计算的结果 displayValue ...

最新文章

  1. HTML5地理定位用法
  2. 未加载 ntdll.pdb的可能错误原因
  3. 利用mk-table-checksum监测Mysql主从数据一致性操作记录
  4. 找到一个全能的免费空间!支持SQL和.net2.0
  5. MySQL中的视图操作
  6. boost::geometry::strategy::distance::pythagoras用法的测试程序
  7. leetcode 1338. Reduce Array Size to The Half | 1338. 数组大小减半(Java)
  8. Vue2.0+SVG实现音乐播放圆形进度条组件,传入实时百分比实现圆圈进度动画效果
  9. 爱计算机辅助筛查肺结节,计算机辅助检测系统提高CT肺结节检出方式的研究
  10. SQL必知必会-更新和删除数据
  11. 容器安装java_在docker容器中安装Java(从宿主机向docker容器中拷贝文件)
  12. (进阶)LeetCode(338)——比特位计数(JavaScript)
  13. TypeError: Layout of the output array image is incompatible with cv::Mat
  14. 一句Python,一句R︱数据的合并、分组、排序、翻转、集合
  15. html内容超出不自动滚动,16.css: overflow使用 例: 固定div大小,不让内容超出div
  16. php tp框架,tp框架是什么意思
  17. Tomcat中的ResourceBundle国际化解析
  18. 四元数与欧拉角之间的换算关系
  19. matlab 日期加小时数_将EXCEL 中的日期 时间 导入到MATLAB坐标轴中
  20. stc12串口收发计算机,stc12c5a60s2串口程序

热门文章

  1. 单片机STM32低功耗
  2. 爬虫——获取联行行号
  3. 计算机桌面锁屏壁纸怎么换,电脑怎么换锁屏壁纸
  4. 最全的Windows10强制永久关闭自动更新方法!
  5. 在 vmware ESXi上安装mac系统虚拟机
  6. 自定义加载等待动画,仿金山词霸
  7. python中的df是什么意思_python数据分析之pandas数据选取:df[] df.loc[] df.iloc[] df.ix[] df.at[] df.iat[]...
  8. 经纬财富:东莞炒白银怎么做好风险控制
  9. python读取grd数据_Matlab读取grd格式的文件
  10. roadrunner中文文档(四)app服务器