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 相关文章推荐
json格式化/压缩工具 Chrome插件扩展版
May 25 Javascript
jquery的ajax请求全面了解
Mar 20 Javascript
window.onload和$(function(){})的区别介绍
Oct 30 Javascript
JavaScript使用FileSystemObject对象写入文本文件内容的方法
Aug 05 Javascript
Javascript设计模式之观察者模式(推荐)
Mar 29 Javascript
BootStrap.css 在手机端滑动时右侧出现空白的原因及解决办法
Jun 07 Javascript
springMVC结合AjaxForm上传文件
Jul 12 Javascript
浅谈AngularJs指令之scope属性详解
Oct 24 Javascript
AngularJS常见过滤器用法实例总结
Jul 06 Javascript
详细AngularJs4的图片剪裁组件的实例
Jul 12 Javascript
使用vue-cli打包过程中的步骤以及问题的解决
May 08 Javascript
详解React 条件渲染
Jul 08 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.MVC的模板标签系统(四)
2006/09/05 PHP
PHP开发入门教程之面向对象
2006/12/05 PHP
php发送与接收流文件的方法
2015/02/11 PHP
laravel安装zend opcache加速器教程
2015/03/02 PHP
PHP实现合并discuz用户
2015/08/05 PHP
PHP面相对象中的重载与重写
2017/02/13 PHP
php支付宝APP支付功能
2020/07/29 PHP
php实现数组中出现次数超过一半的数字的统计方法
2018/10/14 PHP
php libevent 功能与使用方法详解
2020/03/04 PHP
TP5框架实现的数据库备份功能示例
2020/04/05 PHP
Javascript 八进制转义字符(8进制)
2011/04/08 Javascript
js实现按一下删除键删除整个单词附demo
2014/09/05 Javascript
Javascript iframe交互并兼容各种浏览器的解决方法
2016/07/12 Javascript
Ajax实现不刷新取最新商品
2017/03/01 Javascript
微信小程序实现瀑布流布局与无限加载的方法详解
2017/05/12 Javascript
JS使用栈判断给定字符串是否是回文算法示例
2019/03/04 Javascript
如何基于filter实现网站整体变灰功能
2020/04/17 Javascript
javascript实现获取中文汉字拼音首字母
2020/05/19 Javascript
[02:31]DOTA2帕克 英雄基础教程
2013/11/26 DOTA
python比较两个列表是否相等的方法
2015/07/28 Python
python批量替换多文件字符串问题详解
2018/04/22 Python
python获取地震信息 微信实时推送
2019/06/18 Python
Python学习笔记之文件的读写操作实例分析
2019/08/07 Python
python 画出使用分类器得到的决策边界
2019/08/21 Python
Django多层嵌套ManyToMany字段ORM操作详解
2020/05/19 Python
Django 解决开发自定义抛出异常的问题
2020/05/21 Python
基于Python爬取搜狐证券股票过程解析
2020/11/18 Python
《问银河》教学反思
2014/02/19 职场文书
周年庆典主持词
2014/04/02 职场文书
红色故事演讲稿
2014/05/22 职场文书
教师批评与自我批评(群众路线)
2014/10/15 职场文书
涨工资申请书应该怎么写?
2019/07/08 职场文书
正确的理解和使用Django信号(Signals)
2021/04/14 Python
JavaScript流程控制(循环)
2021/12/06 Javascript
Python接口自动化之文件上传/下载接口详解
2022/04/05 Python
SpringBoot前端后端分离之Nginx服务器下载安装过程
2022/08/14 Servers