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 相关文章推荐
你的编程语言可以这样做吗?
Sep 07 Javascript
jQuery.clean使用方法及思路分析
Jan 07 Javascript
JavaScript中使用document.write向页面输出内容实例
Oct 16 Javascript
有关jQuery中parent()和siblings()的小问题
Jun 01 Javascript
Spring MVC中Ajax实现二级联动的简单实例
Jul 06 Javascript
原生js实现倒计时--2018
Feb 21 Javascript
JS基于正则表达式的替换操作(replace)用法示例
Apr 28 Javascript
聊聊Vue.js的template编译的问题
Oct 09 Javascript
axios中cookie跨域及相关配置示例详解
Dec 20 Javascript
Vue+ElementUI使用vue-pdf实现预览功能
Nov 26 Javascript
JavaScript数组类型Array相关的属性与方法详解
Sep 08 Javascript
详解实现vue的数据响应式原理
Jan 20 Vue.js
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各种编码集详解和以及在什么情况下进行使用
2011/09/11 PHP
php 搜索框提示(自动完成)实例代码
2012/02/05 PHP
浅谈PHP接收POST数据方式
2015/06/05 PHP
JavaScript 中的事件教程
2007/04/05 Javascript
jQuery 性能优化指南(3)
2009/05/21 Javascript
javascript 面向对象思想 附源码
2009/07/07 Javascript
表格 隔行换色升级版
2009/11/07 Javascript
杨氏矩阵查找的JS代码
2013/03/21 Javascript
关闭浏览器输入框自动补齐 兼容IE,FF,Chrome等主流浏览器
2014/02/11 Javascript
Validform+layer实现漂亮的表单验证特效
2016/01/17 Javascript
BootStrap的JS插件之轮播效果案例详解
2016/05/16 Javascript
js捕捉键盘事件和按键键值的方法
2016/10/10 Javascript
ES6学习笔记之Set和Map数据结构详解
2017/04/07 Javascript
30分钟快速入门掌握ES6/ES2015的核心内容(下)
2018/04/18 Javascript
详解如何在你的Vue项目配置vux
2018/06/04 Javascript
打通前后端构建一个Vue+Express的开发环境
2018/07/17 Javascript
angularjs1.5 组件内用函数向外传值的实例
2018/09/30 Javascript
jQuery子选择器与可见性选择器实例分析
2019/06/28 jQuery
Vue 使用iframe引用html页面实现vue和html页面方法的调用操作
2020/11/16 Javascript
vue实现防抖的实例代码
2021/01/11 Vue.js
Django1.7+python 2.78+pycharm配置mysql数据库教程
2014/11/18 Python
Python实现拷贝多个文件到同一目录的方法
2016/09/19 Python
Python使用ConfigParser模块操作配置文件的方法
2018/06/29 Python
python爬虫租房信息在地图上显示的方法
2019/05/13 Python
OpenCV中VideoCapture类的使用详解
2020/02/14 Python
python 对任意数据和曲线进行拟合并求出函数表达式的三种解决方案
2020/02/18 Python
贝玲妃英国官网:Benefit英国
2018/02/03 全球购物
The North Face北面美国官网:美国著名户外品牌
2018/09/15 全球购物
墨西哥购物网站:Elektra
2020/01/21 全球购物
weblogic面试题
2016/03/07 面试题
《一个中国孩子的呼声》教学反思
2014/02/12 职场文书
开工典礼策划方案
2014/05/23 职场文书
食品安全标语
2014/06/07 职场文书
高三英语复习计划
2015/01/19 职场文书
女性励志书籍推荐
2019/08/19 职场文书
《总之就是很可爱》新作短篇动画《总之就是很可爱~制服~》将于2022年夏天播出
2022/04/07 日漫