位置: IT常识 - 正文

【微信小程序】计算器案例(微信小程序怎么制作自己的小程序)

编辑:rootadmin
【微信小程序】计算器案例

推荐整理分享【微信小程序】计算器案例(微信小程序怎么制作自己的小程序),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:微信小程序店铺怎么开,微信小程序开发一个多少钱,微信小程序开发,微信小程序开发平台,微信小程序开发平台,微信小程序怎么制作自己的小程序,微信小程序怎么制作自己的小程序,微信小程序店铺怎么开,内容如对您有帮助,希望把文章链接给更多的朋友!

🏆今日学习目标:第二十一期——计算器案例 ✨个人主页:颜颜yan_的个人主页 ⏰预计时间:30分钟 🎉专栏系列:我的第一个微信小程序

计算器前言实现效果实现步骤wxmlwxssjs数字按钮事件处理函数计算按钮处理事件清空数字、删除数字、添加“.”事件处理函数总结前言

嗨嗨嗨,好久没更新小程序专栏了,本期浅浅用小程序写一个计算器。 最终代码会上传至资源噢~

实现效果

实现步骤【微信小程序】计算器案例(微信小程序怎么制作自己的小程序)

新建一个项目,在app.json中配置文件导航栏的标题和颜色。

先在index.wxml中编写计算器页面的外层结构,也就是两个view,第一个view显示数字和运算符,第二个view显示各种按钮。 然后在index.wxss中添加样式。在page(整体页面)中使用flex布局,将result和btns的flex设置为1,实现两个view平分页面的效果。

<view class="result"></view><view class="btns"></view>page{ display: flex; flex-direction: column; height: 100%;}.result{ flex: 1; background-color: #e0e0e0;}.btns{ flex: 1;}

wxml

接下来我们来编写页面内容。我们可以先观察计算器的布局,计算器的布局是5行4列,所以我们先写5个view组件表示5行,每个view中分别添加4个view表示4列。每个view表示计算器的不同按键。给每个按键定义数据data-val。 上半部分只有两个view组件,分别是用户输入的数字和需要的操作,这里需要绑定数据num和op 知识点: view组件的hover-class属性表示该组件按下时的class样式。

<view class="result"> <view class="result-num">{{num}}</view> <view class="result-op">{{op}}</view></view><view class="btns"> <view> <view hover-class="bg" bindtap="resetBtn">C</view> <view hover-class="bg" bindtap="delBtn">DEL</view> <view hover-class="bg" bindtap="opBtn" data-val="%">%</view> <view hover-class="bg" bindtap="opBtn" data-val="/">/</view> </view> <view> <view hover-class="bg" bindtap="numBtn" data-val="7">7</view> <view hover-class="bg" bindtap="numBtn" data-val="8">8</view> <view hover-class="bg" bindtap="numBtn" data-val="9">9</view> <view hover-class="bg" bindtap="opBtn" data-val="*">x</view> </view> <view> <view hover-class="bg" bindtap="numBtn" data-val="4">4</view> <view hover-class="bg" bindtap="numBtn" data-val="5">5</view> <view hover-class="bg" bindtap="numBtn" data-val="6">6</view> <view hover-class="bg" bindtap="opBtn" data-val="-">-</view> </view> <view> <view hover-class="bg" bindtap="numBtn" data-val="1">1</view> <view hover-class="bg" bindtap="numBtn" data-val="2">2</view> <view hover-class="bg" bindtap="numBtn" data-val="3">3</view> <view hover-class="bg" bindtap="opBtn" data-val="+">+</view> </view> <view> <view hover-class="bg" bindtap="numBtn" data-val="0">0</view> <view hover-class="bg" bindtap="dotBtn">.</view> <view hover-class="bg" bindtap="opBtn" data-val="=">=</view> </view></view>wxss

接下来编写样式啦,利用flex布局实现按钮根据容器的大小自动平分宽度和高度,设置flex-basis:“50%”;用于使按钮“0”占用两个按钮的宽度。

page{ display: flex; flex-direction: column; height: 100%;}.result{ flex: 1; background-color: #e0e0e0; position: relative;}.result-num{ position: absolute; font-size: 27pt; bottom: 5vh; right: 3vw;}.result-op{ font-size: 15pt; position: absolute; bottom: 1vh; right: 3vw;}.btns{ flex: 1; display: flex; flex-direction: column; font-size: 17pt; border-top: 1rpx solid #ccc; border-left: 1rpx solid #ccc;}.btns > view{ flex: 1; display: flex;}.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;}.btns > view:last-child > view:first-child{ flex-basis: 50%;}.btns > view:first-child > view:first-child{ color: red;}.btns > view >view:last-child{ color: #fc8e00;}.bg{ background: #ccc;}

页面效果如下:

js数字按钮事件处理函数添加数字按钮事件实现数字的输入,先设置值,即num和op。设置result和isClear,其中result用来保存上次运算结果。isClear表示输入的数字是否替代当前的数字,如果isClear的值为false,则表示下次输入的数字放在当前显示数字的末尾;如果isClear的值为true,则表示下次输入的数字替代当前的数字。判断当前输入的数字是否为0。如果为0,则设置num的值为0;否则设置num的值为当前输入的值。Page({ data: { num: '', op: '', }, // 数字按钮处理事件 // 保存上次运算结果 result: null, isClear: false, numBtn:function(e){ var num = e.target.dataset.val; if(this.data.num === '0' || this.isClear){ this.setData({num:num}); this.isClear = false; }else{ this.setData({num:this.data.num+num}); } }})计算按钮处理事件获取当前输入的数字和符号;判断是否重复计算;判断符号是什么,当符号为+时,返回的结果就是当前数字加上添加的数字;当符号为-时,返回的结果就是当前数字减去添加的数字…// 计算按钮事件 opBtn:function(e){ var op = this.data.op; var num = Number(this.data.num); this.setData({op:e.target.dataset.val}); //判断是否重复计算 if(this.isClear){ return } this.isClear = true; if(this.result === null){ this.result = num; return } if(op === '+'){ this.result = this.result + num; }else if(op === '-'){ this.result = this.result - num; }else if(op === '*'){ this.result = this.result * num; }else if(op === '/') { this.result = this.result / num; }else if(op === '%'){ this.result = this.result % num; } this.setData({num:this.result + ''}) },清空数字、删除数字、添加“.”事件处理函数 // 清空数字、删除数字、添加“.”事件处理函数 dotBtn:function(){ if(this.isClear){ this.setData({num:'0.'}); this.isClear = false; return } if(this.data.num.indexOf('.' >=0)){ return } }, delBtn:function(){ var num = this.data.num.substr(0,this.data.num.length - 1); this.result = num; this.setData({num:num === ''?'0':num}) }, resBtn:function(){ this.result = null; this.isClear = false; this.setData({num:'0',op:''}) }})总结

以上就是今天的学习内容啦~ 如果有兴趣的话可以订阅专栏,持续更新呢~ 咱们下期再见~

本文链接地址:https://www.jiuchutong.com/zhishi/300099.html 转载请保留说明!

上一篇:torch.nn.Conv3d

下一篇:react生命周期详细介绍(react生命周期详解)

  • 苹果平板竖屏改成横屏怎么改(苹果平板竖屏设置在哪里设置方法)

    苹果平板竖屏改成横屏怎么改(苹果平板竖屏设置在哪里设置方法)

  • 苹果发的特效短信为什么对方看不到(苹果发特效短信安卓手机可以看到吗)

    苹果发的特效短信为什么对方看不到(苹果发特效短信安卓手机可以看到吗)

  • 大数据分析的理论核心是什么算法(大数据分析的理论核心就是什么)

    大数据分析的理论核心是什么算法(大数据分析的理论核心就是什么)

  • qq龙王能干什么(qq龙王有什么好玩的功能)

    qq龙王能干什么(qq龙王有什么好玩的功能)

  • 抖音播放量为什么只有几十个(抖音播放量为什么会逐渐下降)

    抖音播放量为什么只有几十个(抖音播放量为什么会逐渐下降)

  • 视频怎么以文件形式发送(视频怎么以文件的形式发送到qq)

    视频怎么以文件形式发送(视频怎么以文件的形式发送到qq)

  • 键盘和触摸板同时失灵(电脑触摸板和键盘没反应怎么办)

    键盘和触摸板同时失灵(电脑触摸板和键盘没反应怎么办)

  • 华为手机怎么彩信打不开呀(华为手机怎么彩色变黑白了怎么调回来)

    华为手机怎么彩信打不开呀(华为手机怎么彩色变黑白了怎么调回来)

  • 苹果拍照怎么才能不反(苹果拍照怎么才能没声音)

    苹果拍照怎么才能不反(苹果拍照怎么才能没声音)

  • 老年机怎么输入字母(老年机怎么输入电话号码)

    老年机怎么输入字母(老年机怎么输入电话号码)

  • 如何设置微信标语(如何设置微信标签名称)

    如何设置微信标语(如何设置微信标签名称)

  • 模拟电子技术和数字电子技术的区别(模拟电子技术和高频电路的区别与联系)

    模拟电子技术和数字电子技术的区别(模拟电子技术和高频电路的区别与联系)

  • 手机电量一定要充满吗(为什么手机的电量越充越少)

    手机电量一定要充满吗(为什么手机的电量越充越少)

  • qq无响应是什么原因(qq无响应是什么情况)

    qq无响应是什么原因(qq无响应是什么情况)

  • 闲鱼买东西先付款吗(闲鱼买东西先付款再调试发货吗)

    闲鱼买东西先付款吗(闲鱼买东西先付款再调试发货吗)

  • b站怎么设置动态头像(b站怎么设置动态仅自己可见)

    b站怎么设置动态头像(b站怎么设置动态仅自己可见)

  • 苹果11有几个摄像头(苹果11几个摄像头)

    苹果11有几个摄像头(苹果11几个摄像头)

  • 读取已安装应用列表什么意思(读取已安装应用信息要关闭吗)

    读取已安装应用列表什么意思(读取已安装应用信息要关闭吗)

  • 安卓beatsx怎么看电量

    安卓beatsx怎么看电量

  • Pytorch机器学习(八)—— YOLOV5中NMS非极大值抑制与DIOU-NMS等改进(pytorch如何学)

    Pytorch机器学习(八)—— YOLOV5中NMS非极大值抑制与DIOU-NMS等改进(pytorch如何学)

  • 织梦二次开发调用指定模型自定义字段值的文章列表(织梦二次开发教程)

    织梦二次开发调用指定模型自定义字段值的文章列表(织梦二次开发教程)

  • 计提印花税会计分录
  • 一般纳税人劳务派遣税率
  • 城建税计税依据扣除增值税期末留抵
  • 经营所得预缴申报时间
  • 工程施工计入资产负债表
  • 一般纳税人增值税申报操作流程
  • 机动车销售统一专票有几联
  • 银行承兑汇票贴现利率一般多少
  • 电梯折旧费如何分摊
  • 减半征收怎么算
  • 所得税汇算清缴调整项目
  • 药店的成本费用有哪些
  • 支付的各项税费包括个人所得税吗
  • 共同投资项目工程款怎么开票?
  • 收到其他与经营活动有关的现金减少
  • 建筑行业收到劳务发票入工程施工科目
  • 香港公司可以给个人打款吗
  • symtray.exe - symtray是什么进程 有何作用
  • PHP+jQuery+Ajax实现分页效果 jPaginate插件的应用
  • 企业购入固定资产在每期末应使用公允价值法进行计量
  • 企业房产税如何计算方法
  • 公益性捐赠增值税税率
  • AUTOMATIC1111/stable-diffusion-webui安装教程
  • 贷款滞纳金如何收取
  • 贝纳克波斯图干红葡萄酒
  • python模拟微信
  • 落基山国家公园攻略
  • windows11安装ubuntu20.04
  • 给工程项目买保险是选哪个保险公司
  • 销售材料账务处理
  • js浅拷贝和深拷贝的方法
  • js 跳转网页
  • chatto
  • 用cat命令创建f1和f2文件
  • 代开的普通发票如何盖章
  • 中小型科技企业所面临的普遍问题是资金缺乏
  • 其他免税销售额大于0免税性质代码
  • 含消费税的商品开成了不含消费税怎么办
  • 会计中的一级科目是什么意思
  • 理财产品的分红和收益是分开的吗
  • 教育经费什么情况下可以报销
  • 筹建期购买办公用品
  • 深圳税务2021
  • mysql怎么实现原子性
  • 报表中的存货是什么
  • 企业所得税季度申报表怎么填
  • 个人所得额哪些要交税
  • 公司与公司的往来款计入什么科目
  • 发票作废该如何操作
  • 股东投入的资金
  • 权益性投资收益确认收入时间
  • 销售货物的运费的税率怎么算
  • 专项应付款能转出吗
  • 年末资产减值损失可以税前扣除吗
  • 公司汽车维修
  • 工伤七至十级有伤残津贴吗
  • 代收的车船税没交怎么办
  • 开红字发票后再开蓝字发票如何入账
  • 记账凭证填制的心得体会
  • mysql密码忘记怎么办
  • win7 32位旗舰版电脑城下载
  • Linux系统忘记root密码
  • windows内核版本9600
  • 电脑系统信息怎么关闭
  • win8热点设置
  • ubuntu 15.04系统怎么安装qq?
  • 右键无法新建wps
  • linux conio
  • unity 链表
  • javascript怎么学
  • shell脚本如何注释
  • 深入理解python特性 pdf
  • cocos2dx2.2.5在iOS下加入Google AdMob可能会遇到的问题
  • unity鼠标移动控制角色旋转
  • jquery有哪些
  • 在linux安装python
  • 陕西税务纳税服务平台
  • 已申报的纳税申报表怎么下载打印
  • 广东共青团如何解绑微信
  • 福建广电网上营业厅下载
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设