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 相关文章推荐
javascript 动态table添加colspan\rowspan 参数的方法
Jul 25 Javascript
关于jquery.validate1.9.0前台验证的使用介绍
Apr 26 Javascript
JS操作select下拉框动态变动(创建/删除/获取)
Jun 02 Javascript
js innerHTML 改变div内容的方法
Aug 03 Javascript
JS实现时间格式化的方式汇总
Oct 16 Javascript
基于jquery实现图片上传本地预览功能
Jan 08 Javascript
移动适配的几种方案(三种方案)
Nov 25 Javascript
vue双向数据绑定原理探究(附demo)
Jan 17 Javascript
使用jQuery.Pin垂直滚动时固定导航
May 24 jQuery
详解用vue.js和laravel实现微信支付
Jun 23 Javascript
JS实现用特殊符号替换字符串的中间部分区域的实例代码
Jul 24 Javascript
JS实现的tab页切换效果完整示例
Dec 18 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
全国FM电台频率大全 - 19 广东省
2020/03/11 无线电
php 智能404跳转代码,适合换域名没改变目录的网站
2010/06/04 PHP
php隐藏IP地址后两位显示为星号的方法
2014/11/21 PHP
学习PHP Cookie处理函数
2016/08/09 PHP
checkbox 多选框 联动实现代码
2008/10/22 Javascript
基于Jquery的文字滚动跑马灯插件(一个页面多个滚动区)
2010/07/26 Javascript
jquery实现背景墙聚光灯效果示例分享
2014/03/02 Javascript
document.write的几点使用心得
2014/05/14 Javascript
基于JavaScript操作DOM常用的API小结
2015/12/01 Javascript
探讨JavaScript语句的执行过程
2016/01/28 Javascript
关于vue.js弹窗组件的知识点总结
2016/09/11 Javascript
canvas绘制多边形
2017/02/24 Javascript
Vue ElementUI之Form表单验证遇到的问题
2017/08/21 Javascript
AngularJs点击状态值改变背景色的实例
2017/12/18 Javascript
p5.js入门教程和基本形状绘制
2018/03/15 Javascript
使用淘宝镜像cnpm安装Vue.js的图文教程
2018/05/17 Javascript
JavaScript数组,JSON对象实现动态添加、修改、删除功能示例
2018/05/26 Javascript
在 Angular6 中使用 HTTP 请求服务端数据的步骤详解
2018/08/06 Javascript
微信小程序websocket实现即时聊天功能
2019/05/21 Javascript
基于Vue的侧边目录组件的实现
2020/02/05 Javascript
深入解读VUE中的异步渲染的实现
2020/06/19 Javascript
利用Vue的v-for和v-bind实现列表颜色切换
2020/07/17 Javascript
Vue+scss白天和夜间模式切换功能的实现方法
2021/01/05 Vue.js
[06:09]辉夜杯主赛事开幕式
2015/12/25 DOTA
python中print()函数的“,”与java中System.out.print()函数中的“+”功能详解
2017/11/24 Python
Python selenium实现断言3种方法解析
2020/09/08 Python
几款Python编译器比较与推荐(小结)
2020/10/15 Python
Charles & Colvard官网:美国莫桑石品牌
2019/06/05 全球购物
2014年3.15团委活动总结
2014/03/16 职场文书
企业家王石演讲稿:坚持与放下
2014/04/27 职场文书
2015年会计个人工作总结
2015/04/02 职场文书
2015年档案管理员工作总结
2015/05/13 职场文书
篮球赛闭幕式主持词
2015/07/03 职场文书
大学校园餐饮创业计划书
2019/08/07 职场文书
python_tkinter弹出对话框创建
2022/03/20 Python
Python函数对象与闭包函数
2022/04/13 Python