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 相关文章推荐
基础的prototype.js常用函数及其用法
Mar 10 Javascript
基于jQuery的history历史记录插件
Dec 11 Javascript
js创建子窗口并且回传值示例代码
Jul 02 Javascript
JS实现兼容性好,自动置顶的淘宝悬浮工具栏效果
Sep 18 Javascript
Vue 2.0学习笔记之Vue中的computed属性
Oct 16 Javascript
vue 之 .sync 修饰符示例详解
Apr 21 Javascript
QRCode.js二维码生成并能长按识别
Oct 16 Javascript
vue移动端城市三级联动组件使用详解
Jul 26 Javascript
webpack 动态批量加载文件的实现方法
Mar 19 Javascript
js中位数不足自动补位扩展padLeft、padRight实现代码
Apr 06 Javascript
解决Antd 里面的select 选择框联动触发的问题
Oct 24 Javascript
聊聊JS ES6中的解构
Apr 29 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学习笔记之二 php入门知识
2011/01/12 PHP
PHP漏洞全解(详细介绍)
2012/11/13 PHP
thinkphp在模型中自动完成session赋值示例代码
2014/09/09 PHP
php字符比较函数similar_text、strnatcmp与strcasecmp用法分析
2014/11/18 PHP
phpmailer简单发送邮件的方法(附phpmailer源码下载)
2016/06/13 PHP
基于win2003虚拟机中apache服务器的访问
2017/08/01 PHP
PHP实现的多维数组去重操作示例
2018/07/21 PHP
javascript入门·图片对象(无刷新变换图片)\滚动图像
2007/10/01 Javascript
jQuery隔行变色与普通JS写法的对比
2013/04/21 Javascript
JQuery调webservice实现邮箱验证(检测是否可用)
2013/05/21 Javascript
jQuery动画特效实例教程
2014/08/29 Javascript
cookie的secure属性详解
2015/04/08 Javascript
在Node.js应用中使用Redis的方法简介
2015/06/24 Javascript
JS更改select内option属性的方法
2015/10/14 Javascript
JS输出空格的简单实现方法
2016/09/08 Javascript
jquery中用jsonp实现搜索框功能
2016/10/18 Javascript
jQuery实现基本动画效果的方法详解
2018/09/06 jQuery
微信小程序登录session的使用
2019/03/17 Javascript
如何利用nodejs实现命令行游戏
2020/11/24 NodeJs
Python实现的银行系统模拟程序完整案例
2019/04/12 Python
Python 实现的 Google 批量翻译功能
2019/08/26 Python
opencv python如何实现图像二值化
2020/02/03 Python
python如何实现复制目录到指定目录
2020/02/13 Python
Python绘图实现台风路径可视化代码实例
2020/10/23 Python
倩碧澳大利亚官网:Clinique澳大利亚
2019/07/22 全球购物
一份软件工程师的面试试题
2016/02/01 面试题
群众路线教育实践活动方案
2014/02/02 职场文书
护士岗位求职应聘自荐书范文
2014/02/12 职场文书
内衣营销方案
2014/03/15 职场文书
医疗纠纷协议书
2014/04/16 职场文书
纠纷协议书
2014/04/16 职场文书
2014年秋季新学期寄语
2014/08/02 职场文书
银行柜员与客户起冲突检讨书
2014/09/27 职场文书
2014年维修电工工作总结
2014/11/20 职场文书
建筑工程材料员岗位职责
2015/04/11 职场文书
入伍志愿书怎么写?
2019/07/19 职场文书