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 AJAX 中文乱码问题解决
Jun 05 Javascript
javascript动态修改Li节点值的方法
Jan 20 Javascript
js实现类似MSN提示的页面效果代码分享
Aug 24 Javascript
BootStrap的alert提示框的关闭后再显示怎么解决
May 17 Javascript
全面解析Bootstrap中nav、collapse的使用方法
May 22 Javascript
使用Javascript监控前端相关数据的代码
Oct 27 Javascript
vue如何在自定义组件中使用v-model
May 14 Javascript
解决angularjs WdatePicker ng-model的问题
Sep 13 Javascript
vue动态禁用控件绑定disable的例子
Oct 28 Javascript
原生js实现随机点餐效果
Dec 10 Javascript
解决vue net :ERR_CONNECTION_REFUSED报错问题
Aug 13 Javascript
为什么node.js不适合大型项目
Apr 28 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
笑谈配置,使用Smarty技术
2007/01/04 PHP
php目录遍历函数opendir用法实例
2014/11/20 PHP
php自定义urlencode,urldecode函数实例
2015/03/24 PHP
变量在 PHP7 内部的实现(一)
2015/12/21 PHP
常用PHP封装分页工具类
2017/01/14 PHP
一页面多XMLHttpRequest对象
2007/01/22 Javascript
prototype 学习笔记整理
2009/07/17 Javascript
Node.js文件操作详解
2014/08/16 Javascript
javascript中传统事件与现代事件
2015/06/23 Javascript
easyui Draggable组件实现拖动效果
2015/08/19 Javascript
JavaScript学习小结(7)之JS RegExp
2015/11/29 Javascript
jQuery EasyUI中的日期控件DateBox修改方法
2016/11/09 Javascript
JS中传递参数的几种不同方法比较
2017/01/20 Javascript
微信小程序 action-sheet 反馈上拉菜单简单实例
2017/05/11 Javascript
详解React 在服务端渲染的实现
2017/11/16 Javascript
使用vue 国际化i18n 实现多实现语言切换功能
2018/10/11 Javascript
js数组去重的方法总结
2019/01/18 Javascript
PyCharm+PySpark远程调试的环境配置的方法
2018/11/29 Python
使用python PIL库实现简单验证码的去噪方法步骤
2019/05/10 Python
python通过移动端访问查看电脑界面
2020/01/06 Python
python3.7通过thrift操作hbase的示例代码
2020/01/14 Python
opencv python在视屏上截图功能的实现
2020/03/05 Python
django xadmin action兼容自定义model权限教程
2020/03/30 Python
利用Python制作动态排名图的实现代码
2020/04/09 Python
Python Tornado实现WEB服务器Socket服务器共存并实现交互的方法
2020/05/26 Python
详解CSS3实现响应式手风琴效果
2020/06/10 HTML / CSS
阿联酋航空假期:Emirates Holidays
2018/03/20 全球购物
荟萃全球保健品:维他购
2018/05/09 全球购物
整个世界的设计师家具在哈恩:Designathome
2019/03/25 全球购物
飞利浦法国官网:Philips法国
2019/07/10 全球购物
大学应届毕业生个人求职信
2013/09/23 职场文书
合作经营协议书范本
2014/04/17 职场文书
竞选部长演讲稿
2014/04/26 职场文书
安全目标责任书
2014/07/22 职场文书
党员反邪教心得体会
2016/01/15 职场文书
MySQL中B树索引和B+树索引的区别详解
2022/03/03 MySQL