微信小程序案例3-2:计算器

该博客详细介绍了如何使用微信小程序开发一个计算器应用。从创建项目、设置导航栏开始,逐步讲解页面结构、样式设计、工具模块的创建以及页面逻辑的实现,包括数字和运算符按钮的事件处理、连等计算等问题的解决。涉及到的知识点包括data-*自定义属性和模块化开发。
摘要由CSDN通过智能技术生成

文章目录

一、运行效果

在这里插入图片描述

  • 录屏演示多次计算
    请添加图片描述

二、知识储备

(一)data-*自定义属性

请添加图片描述

(二)模块

请添加图片描述

三、实现步骤

(一)准备工作

1、创建项目

  • 创建微信小程序项目 - 计算器
    在这里插入图片描述
  • 单击【确定】按钮
    在这里插入图片描述
  • 按照惯例,做一些初始化工作
    在这里插入图片描述

2、设置导航栏

  • app.json设置window配置项
    在这里插入图片描述

(二)实现页面结构

  • pages/index/index.wxml文件

1、编写页面整体结构

在这里插入图片描述

2、编写结果区域结构

  • 两行内容:第一行是当前的计算式,第二行是当前计算结果
    在这里插入图片描述

3、编写按钮区域第一行按钮的结构

  • 第一行包含四个按钮:清楚按钮、删除按钮、正负号切换按钮、除号按钮
    在这里插入图片描述
  • 第20行代码设置了data-val自定义属性,用于区分不同按钮

4、编写按钮区域第二行按钮的结构

  • 第二行包含四个按钮:7按钮、8按钮、9按钮、乘号按钮
    在这里插入图片描述
  • 四个按钮都设置了data-val自定义属性,用于区分不同按钮

5、编写按钮区域第三行按钮的结构

  • 第三行包含四个按钮:4按钮、5按钮、6按钮、减号按钮
    在这里插入图片描述
  • 四个按钮都设置了data-val自定义属性,用于区分不同按钮

6、编写按钮区域第四行按钮的结构

  • 第四行包含四个按钮:1按钮、2按钮、3按钮、加号按钮
    在这里插入图片描述
  • 四个按钮都设置了data-val自定义属性,用于区分不同按钮

7、编写按钮区域第五行按钮的结构

  • 第五行包含四个按钮:0按钮、点按钮、3按钮、加号按钮
    在这里插入图片描述
  • 第68行设置了data-val自定义属性,用于区分不同按钮
  • 查看预览效果
    在这里插入图片描述

(三)实现页面样式

  • pages/index/index/wxss文件

1、编写页面样式

  • 设置page样式
    在这里插入图片描述

2、编写结果区域样式

  • 结果区域有三个样式类:resultresult-subresult-sum
    在这里插入图片描述
  • 修改页面结构,暂时查看预览效果
    在这里插入图片描述
  • 查看预览效果之后,将页面结构改回去

3、编写按钮区域样式

(1)按钮区域总体样式
  • .btns样式类
    在这里插入图片描述
  • 查看预览效果
    在这里插入图片描述
(2)按钮区域中每一行的样式
  • .btns > view样式类
    在这里插入图片描述
  • 查看预览效果
    在这里插入图片描述
(4)按钮区域每一行中每个按钮的样式
  • .btns > view > view样式类
    在这里插入图片描述
  • 查看预览效果
    在这里插入图片描述
(5)让0按钮垮2列
  • .btns > view:first-child > view:first-child选择器
    在这里插入图片描述
  • 查看预览效果
    在这里插入图片描述
(6)清除按钮样式
  • .btns > view:first-child > view:first-child选择器
    在这里插入图片描述
  • 查看预览效果
    在这里插入图片描述
(7)最后一列按钮样式
  • .btns > view > view:last-child选择器
    在这里插入图片描述
  • 查看预览效果
    在这里插入图片描述
(8)按钮的盘旋样式类
  • .bg选择器
    在这里插入图片描述
  • 查看预览效果
    请添加图片描述

4、页面样式源码

/**index.wxss**/
page {
   
  height: 100vh;
  display: flex;
  flex-direction: column;
  color: #555;
}

/* 结果区域样式 */
.result {
   
  flex: 1; /*平均分布手机屏幕,因为flex-direction: column*/
  background: #f3f3f3;
  position: relative;
}

/* 当前计算式样式 */
.result-sub {
   
  font-size: 52rpx;
  position: absolute;
  bottom: 16vh;
  right: 3vw;
}

/* 当前计算结果样式 */
.result-num {
   
  font-size: 100rpx;
  position: absolute;
  bottom: 3vh;
  right: 3vw;
}

/* 按钮区域样式 */
 .btns {
   
   display: flex;
   flex: 1;
    flex-direction: column;
    font-size: 38rpx;
    border-top: 1rpx solid #ccc;
    border-left: 1rpx solid #ccc;
 }

/* 按钮区域中每一行的样式 */
.btns>view {
   
  display: flex;
  flex: 1;
}

/* 按钮区域每一行中每个按钮的样式 */
.btns > view > view {
   
  flex-basis: 25%; /* 四个按钮均分一行的空间 */
  border-right: 1rpx solid #ccc; /* 右边框线 */
  border-bottom: 1rpx solid #ccc; /* 底边框线 */
  box-sizing: border-box; /* 用于控制盒模型的尺寸计算方式 */
  display: flex; /*弹性布局*/
  align-items: center; /* 交叉轴居中 - 垂直居中 */
  justify-content: center; /* 主轴居中 - 水平居中 */
}

/* 0按钮跨2列, .btns view:last-child view:nth-child(1) */
.btns view:last-child view:first-child {
    
  flex-basis: 50%;
}

/* 清除按钮样式 */
.btns > view:first-child > view:first-child {
   
  color: #f00;
}

/* 最后一列按钮样式 */
.btns > view > view:last-child {
   
  color: orange;
}

/* 按钮的盘旋样式类 */
.bg {
   
  background: #eee;
}

(四)创建工具模块

在这里插入图片描述

  • 在项目根目录创建utils目录
    在这里插入图片描述

1、数字模块 - math.js

  • utils目录里创建math.js文件
    在这里插入图片描述
// 精准计算功能,用于解决JavaScript浮点数运算精度不准确的问题
module.exports = {
   
    // 加法
    add: function(arg1, arg2) {
   
      var r1, r2, m
      try {
   
        r1 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值