当前位置:   article > 正文

微信小程序-简易计算器_微信开发者工具 计算器

微信开发者工具 计算器

概述

微信小程序-简易计算器,满足日常所用的的加减乘除计算

详细

一、前期准备工作

软件环境:微信开发者工具
官方下载地址:微信开发者工具下载地址与更新日志 | 微信开放文档

1、基本需求。
  • 简易计算器
  • 满足日常所用的的加减乘除计算
  • 带历史记录,查看过往计算
2、案例目录结构

二、程序实现具体步骤
1.index.wxml代码
  1. <!--index.wxml-->
  2. <view class="container">
  3. <view bindtap="bindViewTap" class="userinfo">
  4. <image class="userinfo-avatar" src="{{userInfo.avatarUrl}}" background-size="cover"></image>
  5. </view>
  6. <view>
  7. <text class="userinfo-nickname">{{userInfo.nickName}}</text>
  8. <text class="" style="display:block">极客小寨OkYoung团队 倾情出品</text>
  9. </view>
  10. <view class="usermotto">
  11. <!--<text class="user-motto">{{motto}}</text>-->
  12. <button type="default" size="{{primarySize}}" plain="{{plain}}" hover-class="button-hover"
  13. disabled="{{disabled}}" bindtap="toCalc"> {{motto}} </button>
  14. </view>
  15. </view>
2.index.wxss代码
  1. /**index.wxss**/
  2. .userinfo {
  3. /*display: flex;*/
  4. /*flex-direction: column;*/
  5. /*align-items: center;*/
  6. /*width:256rpx;*/
  7. /*height: 512rpx;*/
  8. }
  9. .userinfo-avatar {
  10. width: 228rpx;
  11. height: 228rpx;
  12. border-radius: 50%;
  13. }
  14. .userinfo-nickname {
  15. color: #aaa;
  16. margin-top:80px;
  17. line-height: 80px;
  18. }
  19. .usermotto {
  20. margin-top: 35%;
  21. }
  22. /** 修改button默认的点击态样式类**/
  23. .button-hover {
  24. background-color: red;
  25. }
  26. /** 修改默认的navigator点击态 **/
  27. .navigator-hover {
  28. color:blue;
  29. }
  30. .github{
  31. color: green;
  32. font-size: 14px;
  33. text-align: center;
  34. margin-top: 5px;
  35. }
  36. .icon{
  37. vertical-align: middle;
  38. margin-right: 2px;
  39. }
3.index.js逻辑代码
  1. //index.js
  2. //获取应用实例
  3. var app = getApp()
  4. Page({
  5. data: {
  6. motto: '简易计算器☞',
  7. userInfo: {},
  8. defaultSize: 'default',
  9. disabled: false,
  10. iconType:'info_circle'
  11. },
  12. //事件处理函数
  13. bindViewTap: function() {
  14. wx.navigateTo({
  15. url: '../logs/logs'
  16. })
  17. },
  18. toCalc:function(){
  19. wx.navigateTo({
  20. url:'../calc/calc'
  21. })
  22. },
  23. onLoad: function () {
  24. console.log('onLoad');
  25. var that = this
  26. //调用应用实例的方法获取全局数据
  27. app.getUserInfo(function(userInfo){
  28. //更新数据
  29. that.setData({
  30. userInfo:userInfo
  31. })
  32. })
  33. }
  34. })
4.计算器部分功能逻辑代码
  1. var id = event.target.id;
  2. if(id == this.data.idb){ //退格←
  3. var data = this.data.screenData;
  4. if(data == "0"){
  5. return;
  6. }
  7. data = data.substring(0,data.length-1);
  8. if(data == "" || data == "-"){
  9. data = 0;
  10. }
  11. this.setData({"screenData":data});
  12. this.data.arr.pop();
  13. }else if(id == this.data.idc){ //清屏C
  14. this.setData({"screenData":"0"});
  15. this.data.arr.length = 0;
  16. }else if(id == this.data.idt){ //正负号+/-
  17. var data = this.data.screenData;
  18. if(data == "0"){
  19. return;
  20. }
  21. var firstWord = data.charAt(0);
  22. if(data == "-"){
  23. data = data.substr(1);
  24. this.data.arr.shift();
  25. }else{
  26. data = "-" + data;
  27. this.data.arr.unshift("-");
  28. }
  29. this.setData({"screenData":data});
  30. }else if(id == this.data.ide){ //等于=
  31. var data = this.data.screenData;
  32. if(data == "0"){
  33. return;
  34. }
  35. //eval是js中window的一个方法,而微信页面的脚本逻辑在是在JsCore中运行,JsCore是一个没有窗口对象的环境,所以不能再脚本中使用window,也无法在脚本中操作组件
  36. //var result = eval(newData);
  37. var lastWord = data.charAt(data.length);
  38. if(isNaN(lastWord)){
  39. return;
  40. }
三、案例运行效果图

四、总结与备注
注意事项

1.每新建一个页面一定要记得去app.josn的pages属性中添加,不然的话使用navigateTo跳转到新页面后新页面的onLoad方法不会执行。

2.微信小程序中没有window等JavaScript对象,所以在写JS前想好替代方案,比如本计算器就被坑大了,本来使用eval函数可以方便的计算表达式,结果没法用,绕了好大的弯。

3.微信小程序中的JS并不是真正的JS,wxss也并不是真正的CSS,所以写的时候还是要注意一下。

4.本计算器存在不完善和bug,因为重点不是实现全部功能,而是搞清楚微信小程序开发方法,所以非关注点不用在意。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/天景科技苑/article/detail/928463
推荐阅读
相关标签
  

闽ICP备14008679号