Vue实现手机计算器


Posted in Javascript onAugust 17, 2020

本文实例为大家分享了Vue制作仿手机计算器的具体代码,供大家参考,具体内容如下

1.首先是把样式做出来,按钮是0-9,还有加减乘除,百分号,清除按钮,小数点,等号、等等

Vue实现手机计算器

2.把官方网站的JS插件引用,cn.vuejs.org/v2/guide/

Vue实现手机计算器

页面视图

Vue实现手机计算器

JS

Vue实现手机计算器

Vue实现手机计算器

Vue实现手机计算器

new Vue({
   el: "#app",
   data: {
    equation: '0',
    isDecimalAdded: false, //防止在一组数字中间输入超过一个小数位
    isOperatorAdded: false, //判断之否已点击 加、减、乘、除,防止连续点击超过一个运算符号
    isStarted: false, //判断计算器是否已经开始输入数字,用于正负数和百分比计算的时候作一些判断
   },
   methods: {
    //Check if the character is + - × ÷
    isOperator(character) { //用来判断character 是否加减乘除
     return ['+', '-', '×', '÷'].indexOf(character) > -1
    },
    append(character) { //append(character)加减乘除
     if (this.equation === '0' && !this.isOperator(character)) {
      if (character === '.') {
       this.equation += '' + character
       this.isDecimalAdded = true
      } else {
       this.equation = '' + character
      }
      this.isStarted = true
      return
     }

     if (!this.isOperator(character)) {
      if (character === '.' && this.isDecimalAdded) {
       return
      }

      if (character === '.') {
       this.isDecimalAdded = true
       this.isOperatorAdded = true
      } else {
       this.isOperatorAdded = false
      }
      this.equation += '' + character
     }

     if (this.isOperator(character) && !this.isOperatorAdded) {
      this.equation += '' + character
      this.isDecimalAdded = false
      this.isOperatorAdded = true
     }
    },
    calculate() { //等于号的时候
     let result = this.equation.replace(new RegExp('×', 'g'), '*').replace(new RegExp('÷', 'g'), '/')
     this.equation = parseFloat(eval(result).toFixed(9)).toString()
     this.isDecimalAdded = false
     this.isOperatorAdded = false
    },
    calculateToggle() { //点击正负号
     if (this.isOperatorAdded || !this.isStarted) {
      true
     }

     this.equation = this.equation + '* -1'
     this.calculate()
    },
    calculatePercentage() { //点击百分比
     if (this.isOperatorAdded || !this.isStarted) {
      true
     }

     this.equation = this.equation + '* 0.01'
     this.calculate()
    },
    clear() { //点击AC
     this.equation = '0'
     this.isDecimalAdded = false //防止在一组数字中间输入超过一个小数位
     this.isOperatorAdded = false //判断之否已点击 加、减、乘、除,防止连续点击超过一个运算符号
     this.isStarted = false //判断计算器是否已经开始输入数字,用于正负数和百分比计算的时候作一些判断
    }
   }
})

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jquery自定义滚动条插件示例分享
Feb 21 Javascript
jQuery实现的调整表格行tr上下顺序
Jan 10 Javascript
纯JS打造网页中checkbox和radio的美化效果
Oct 13 Javascript
详解js中Json的语法与格式
Nov 22 Javascript
AngularJS指令中的绑定策略实例分析
Dec 14 Javascript
微信小程序页面间值传递的两种方法
Nov 26 Javascript
详解JavaScript 浮点数运算的精度问题
Jul 23 Javascript
js实现无缝轮播图
Mar 09 Javascript
Vue+tracking.js 实现前端人脸检测功能
Apr 16 Javascript
小程序组件传值和引入sass的方法(使用vant Weapp组件库)
Nov 24 Javascript
js获取图片的base64编码并压缩
Dec 05 Javascript
ES6的循环与可迭代对象示例详解
Jan 31 Javascript
Vuex实现购物车小功能
Aug 17 #Javascript
jquery+ajax实现异步上传文件显示进度条
Aug 17 #jQuery
jQuery实现异步上传一个或多个文件
Aug 17 #jQuery
vue项目里面引用svg文件并给svg里面的元素赋值
Aug 17 #Javascript
vue动态加载SVG文件并修改节点数据的操作代码
Aug 17 #Javascript
Vue如何将页面导出成PDF文件
Aug 17 #Javascript
Vue实现腾讯云点播视频上传功能的实现代码
Aug 17 #Javascript
You might like
php生成静态页面的简单示例
2014/04/17 PHP
phplot生成图片类用法详解
2015/01/06 PHP
在IE,Firefox,Safari,Chrome,Opera浏览器上调试javascript
2008/12/02 Javascript
Exjs 入门篇
2010/04/07 Javascript
一个简单的Ext.XTemplate的实例代码
2012/03/18 Javascript
jQuery仿gmail实现fixed布局的方法
2015/05/27 Javascript
JS实现Select的option上下移动的方法
2016/03/01 Javascript
javascript单页面手势滑屏切换原理详解
2016/03/21 Javascript
IScroll5 中文API参数说明和调用方法
2016/05/21 Javascript
原生JS实现风箱式demo,并封装了一个运动框架(实例代码)
2016/07/22 Javascript
使用ionic在首页新闻中应用到的跑马灯效果的实现方法
2017/02/13 Javascript
JS中的三个循环小结
2017/06/20 Javascript
vue动态路由:路由参数改变,视图不更新问题的解决
2019/11/05 Javascript
Vue使用JSEncrypt实现rsa加密及挂载方法
2020/02/07 Javascript
jquery实现加载更多"转圈圈"效果(示例代码)
2020/11/09 jQuery
用Javascript实现发送短信验证码间隔功能
2021/02/08 Javascript
[49:21]完美世界DOTA2联赛循环赛 Ink Ice vs LBZS BO2第二场 11.05
2020/11/06 DOTA
跟老齐学Python之做一个小游戏
2014/09/28 Python
python魔法方法-自定义序列详解
2016/07/21 Python
Python多线程threading和multiprocessing模块实例解析
2018/01/29 Python
Django框架中序列化和反序列化的例子
2019/08/06 Python
Python流程控制 if else实现解析
2019/09/02 Python
关于Python字符编码与二进制不得不说的一些事
2020/10/04 Python
Python包资源下载路径报404解决方案
2020/11/05 Python
CSS3 3D立方体效果示例-transform也不过如此
2016/12/05 HTML / CSS
CSS3动画特效在活动页中的应用
2020/01/21 HTML / CSS
canvas 橡皮筋式线条绘图应用方法
2019/02/13 HTML / CSS
全球最大最受欢迎的旅游社区:Tripadvisor
2017/11/03 全球购物
武汉世纪畅想数字传播有限公司.NET笔试题
2014/07/22 面试题
艺校音乐专业自我鉴定范文
2014/03/01 职场文书
保密承诺书范文
2014/03/27 职场文书
法院先进个人事迹材料
2014/05/04 职场文书
房屋认购协议书
2015/01/29 职场文书
妈妈别哭观后感
2015/06/08 职场文书
高中英语教学反思范文
2016/03/02 职场文书
windows系统搭建WEB服务器详细教程
2022/08/05 Servers