亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

Vue.js實現的計算器功能完整示例

2019-11-19 13:30:44
字體:
來源:轉載
供稿:網友

本文實例講述了Vue.js實現的計算器功能。分享給大家供大家參考,具體如下:

1. HTML部分代碼

<!DOCTYPE html><html lang="en"><head>  <link rel="stylesheet" type="text/css" href="css/css.css" rel="external nofollow" >  <script type="text/javascript" src="https://cdn.bootcss.com/vue/2.5.16/vue.min.js"></script>  <meta charset="UTF-8">  <title>my-calculator</title></head><body><div id="calculator">  <!--顯示框-->  <input-box v-bind:input-show="inputShow">  </input-box>  <btn-list>    <div @click="clearValue()" class=" btn-30 btn-radius color-red clear-marginleft">C</div>    <div class=" btn-30 btn-radius color-blue">+/-</div>    <div @click="inputValue('%')" class=" btn-30 btn-radius color-blue">%</div>    <div @click="backValue()" class=" btn-70 btn-radius color-red font-14">←</div>    <div @click="inputValue('7')" class=" btn-30 btn-radius clear-marginleft">7</div>    <div @click="inputValue('8')" class=" btn-30 btn-radius">8</div>    <div @click="inputValue('9')" class=" btn-30 btn-radius">9</div>    <div @click="squareValue()" class=" btn-30 btn-radius color-blue font-14">ײ</div>    <div @click="radicalValue()" class=" btn-30 btn-radius color-blue font-12">√</div>    <div @click="inputValue('4')" class=" btn-30 btn-radius clear-marginleft">4</div>    <div @click="inputValue('5')" class=" btn-30 btn-radius">5</div>    <div @click="inputValue('6')" class=" btn-30 btn-radius">6</div>    <div @click="inputValue('×')" class=" btn-30 btn-radius color-blue font-14">×</div>    <div @click="inputValue('÷')" class=" btn-30 btn-radius color-blue font-12">÷</div>    <div @click="inputValue('1')" class=" btn-30 btn-radius clear-marginleft">1</div>    <div @click="inputValue('2')" class=" btn-30 btn-radius">2</div>    <div @click="inputValue('3')" class=" btn-30 btn-radius">3</div>    <div @click="inputValue('+')" class=" btn-30 btn-radius color-blue font-14">+</div>    <div @click="inputValue('-')" class=" btn-30 btn-radius color-blue font-14">-</div>    <div @click="inputValue('0')" class=" btn-70 btn-radius clear-marginleft">0</div>    <div @click="inputValue('.')" class=" btn-30 btn-radius">.</div>    <div @click="calValue()" class=" btn-70 btn-radius color-red font-14">=</div>  </btn-list></div><script>var calculator = new Vue({  el:'#calculator',  data:{    inputShow:{      value:'0'    }  },  components:{    'input-box':{      props:['inputShow'],      computed: {        value:function () {          return this.inputShow.value        }      },      template:'<input id="input-box" type="text" size="21" maxlength="21" v-model="value" readonly="readonly">'    },    'btn-list':{      template:'<div id="btn-list"><slot></slot></div>'    }  },  methods:{    inputValue(param){      if(Object.prototype.toString.call(this.inputShow.value) == "[object Number]"){   //判斷輸入框內容是否為數字類型        this.inputShow.value = "0";   //數字類型說明是上個計算結果,清空內容      }      var str ='' + this.inputShow.value; //輸入內容時,將輸入框內容轉為字符串類型      var len = str.length;      var arr = ["+","-","×","÷"];      var num = (''+parseFloat(str.split('').reverse().join(''))).split('').reverse().join('');   //parseInt(str.split('').reverse().join('')))是獲取輸入框內最后一串數字,再反轉回來 ,num為輸入框內最后一串數字      var nlen = num.length;      if((num!= '0' && param != '.')|| (param == '.'&& num.indexOf(".")==-1)){   //輸入框內最后一串數字不為0時拼接字符串        if(arr.indexOf(str.charAt(len-1)) != -1 && arr.indexOf(param) != -1){    //若一開始輸入內容為運算符,輸入無效          return;        }        this.inputShow.value += param;   //拼接輸入內容      }else{        arr.push("%");        if(param == '.'){      //若num中已有小數點,輸入內容為小數點,視為無效          return;        }else if(!(arr.indexOf(param) != -1)){    //判斷輸入框內最后一個字符不為運算符          this.inputShow.value =str.substring(0,str.length-nlen) + param;  //輸入框內最后一串數字為0時,刪除0拼接        }      }    },    clearValue(){      //清空輸入框內容      this.inputShow.value = '0';    },    calValue(){       //計算結果      var str = this.inputShow.value;      str = str.replace('×','*').replace('÷','/').replace('%','*0.01');    //替換運算符      try{        this.inputShow.value = eval(str);      //若用戶輸入內容不符合運算規則,不計算      }catch(error){        return;      }    },    squareValue(){             //平方計算      var str = this.inputShow.value;      this.inputShow.value = Math.pow(eval(str),2)    },    radicalValue(){             //開根號計算      var str = this.inputShow.value;      this.inputShow.value = Math.sqrt(eval(str));    },    backValue(){              //刪除鍵,刪除單個字符      var str = this.inputShow.value;      if(str.length == 1){        this.inputShow.value = "0";      }else{         this.inputShow.value = str.slice(0,str.length-1);      }    },    /*oppositeValue(){            //正負號取值      var str = this.inputShow.value;      var num = (''+parseInt(str.split('').reverse().join(''))).split('').reverse().join('');   //獲取輸入框內最后遺傳數字      var nlen = num.length;      debugger;      if(!isNaN( parseInt(str.charAt(str.length-1))) && num != 0){  //當輸入框末位字符為數字且最后一串數字不為0時,取正負        this.inputShow.value = str.substring(0,str.length-nlen)+`(-${num})`;      }    }*/  }})</script></body></html>

2. CSS部分代碼

@charset "utf-8";body, ul, dl, dd, dt, ol, li, p, h1, h2, h3, h4, h5, h6, textarea, form, select, fieldset, table, td, div, input{margin:0;padding:0;-webkit-text-size-adjust:none}h1, h2, h3, h4, h5, h6{font-size:12px;font-weight:normal}body>div{margin:0 auto}div{text-align:left}a img{border:0}body{color:#333;text-align:center;font:12px "微軟雅黑";}ul, ol, li{list-style-type:none;vertical-align:0}a{outline-style:none;color:#535353;text-decoration:none}a:hover{color:#D40000;text-decoration:none}.clear{height:0;overflow:hidden;clear:both}/* calculator */#calculator{width:200px;height:245px;padding:10px;border:1px solid #e5e5e5;background:#f8f8f8;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;box-shadow:0px 0px 10px #f2f2f2;-moz-box-shadow:0px 0px 10px #f2f2f2;-webkit-box-shadow:0px 0px 10px #f2f2f2;margin:40px auto 0 auto;}#calculator #input-box{margin:0;width:187px;padding:9px 5px;height:14px;border:1px solid #e5e5e5;border-radius:3px;-webkit-border-radius:3px;-moz-border-radius:3px;background:#FFF;text-align:right;line-height:14px;font-size:12px;font-family:Verdana, Geneva, sans-serif;color:#666;outline:none; text-transform:uppercase;}#calculator #btn-list{width:200px;overflow:hidden;}#calculator #btn-list .btn-radius{border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;border:1px solid #e5e5e5;background:-webkit-gradient(linear, 0 0, 0 100%, from(#f7f7f7), to(#ebebeb));background:-moz-linear-gradient(top, #f7f7f7,#ebebeb);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#f7f7f7,endColorstr=#ebebeb,grandientType=1);line-height:29px;text-align:center;text-shadow:0px 1px 1px #FFF;font-weight:bold;font-family:Verdana, Geneva, sans-serif;color:#666;float:left;margin-left:11px;margin-top:11px;font-size:12px;cursor:pointer;}#calculator #btn-list .btn-radius:active{background:#ffffff;}#calculator #btn-list .clear-marginleft{margin-left:0;}#calculator #btn-list .font-14{font-size:14px;}#calculator #btn-list .color-red{color:#ff5050}#calculator #btn-list .color-blue{color:#00b4ff}#calculator #btn-list .btn-30{width:29px;height:29px;}#calculator #btn-list .btn-70{width:70px;height:29px;}

3. 使用本站HTML/CSS/JS在線運行測試工具http://tools.VeVB.COm/code/HtmlJsRun,可得到如下測試運行效果:

4. 使用時記得改下css路徑,在html中引入vue

5. 博主技術有限,正負號部分功能還有問題待完善.計算器還有一些未知的小Bug,感興趣的讀者可以在這個基礎上進行擴展。

PS:這里再為大家推薦幾款計算工具供大家參考:

在線數學表達式簡單轉換/計算工具:
http://tools.VeVB.COm/jisuanqi/exp_jisuanqi

在線一元函數(方程)求解計算工具:
http://tools.VeVB.COm/jisuanqi/equ_jisuanqi

科學計算器在線使用_高級計算器在線計算:
http://tools.VeVB.COm/jisuanqi/jsqkexue

在線計算器_標準計算器:
http://tools.VeVB.COm/jisuanqi/jsq

希望本文所述對大家vue.js程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
九九热在线精品视频| 久久99久久99精品中文字幕| 国产欧美在线观看| 亚洲免费高清视频| 欧美孕妇与黑人孕交| 国产69精品久久久久99| 日韩专区在线播放| 欧美日韩精品在线观看| 欧美精品性视频| 久久久久久久久亚洲| 国产精品女主播视频| 欧美成人第一页| 欧美激情一区二区三区久久久| 日韩激情视频在线| 日韩一区二区三区在线播放| 久久久最新网址| 69国产精品成人在线播放| 国产精品jizz在线观看麻豆| 国产精品第8页| 久久亚洲私人国产精品va| 日韩在线欧美在线| 国产欧美日韩中文字幕在线| 91嫩草在线视频| 欧美一区二区三区图| 欧美国产第二页| 国内精品中文字幕| 日韩精品极品视频免费观看| 日韩视频中文字幕| 孩xxxx性bbbb欧美| 国产在线拍偷自揄拍精品| 亚洲高清不卡av| 伊人青青综合网站| 精品中文视频在线| 中文字幕日韩综合av| 欧美成人午夜免费视在线看片| 成人免费视频97| 国产人妖伪娘一区91| 国产在线视频2019最新视频| 亚洲人成毛片在线播放| 日韩成人激情视频| 国产盗摄xxxx视频xxx69| 国产精品激情av在线播放| 成人在线一区二区| 国产精品自拍小视频| 亚洲有声小说3d| 不卡伊人av在线播放| 日韩美女免费观看| 欧美一级在线亚洲天堂| 日韩中文字幕精品| 中文字幕亚洲欧美日韩高清| 国产91色在线免费| 91精品中国老女人| 国产精品中文在线| 在线精品播放av| 成人黄色av网| 午夜精品一区二区三区在线| 日韩在线观看免费| 亚洲成人精品av| 久久久国产视频| 久久久亚洲欧洲日产国码aⅴ| 在线观看日韩专区| 欧美日韩人人澡狠狠躁视频| 日韩美女在线播放| 亚洲人成网在线播放| 久久资源免费视频| 91色视频在线导航| 亚洲午夜小视频| 国产亚洲欧洲高清| 91手机视频在线观看| 欧美一级成年大片在线观看| 国产精品视频区| 一区二区成人精品| 亚洲欧美三级伦理| 国产福利精品av综合导导航| 中文字幕在线亚洲| 国产精品日韩在线播放| 欧美精品videossex性护士| 一本色道久久综合狠狠躁篇的优点| www.亚洲男人天堂| 久操成人在线视频| 欧美大胆a视频| 久久久人成影片一区二区三区| 亚洲人成在线观看网站高清| 色播久久人人爽人人爽人人片视av| 亚洲综合中文字幕68页| 亚洲韩国欧洲国产日产av| 6080yy精品一区二区三区| 亚洲国产精品久久久久秋霞蜜臀| 欧美激情亚洲自拍| 国产a∨精品一区二区三区不卡| 国产精品久久一区主播| 欧美丰满老妇厨房牲生活| 中文字幕自拍vr一区二区三区| 国产精品尤物福利片在线观看| 日韩欧美大尺度| 成人字幕网zmw| 午夜剧场成人观在线视频免费观看| 亚洲电影免费观看高清| 欧美激情欧美激情在线五月| 国产成人avxxxxx在线看| 亚洲精品wwww| 欧美日韩国产999| 国产精品91久久| 91精品在线看| 国产性色av一区二区| 亚洲精品在线观看www| 亚洲国产高清福利视频| 国产精品电影一区| 久久亚洲精品网站| 不卡伊人av在线播放| 亚洲精品国产精品乱码不99按摩| 亚洲91精品在线| 欧美成人亚洲成人日韩成人| 日本久久久久久久| 国产视频自拍一区| 欧美理论电影网| 国产精品成人品| 一区二区三区高清国产| 亚洲国产欧美精品| 中文字幕久热精品视频在线| 亚洲精品资源在线| 欧美麻豆久久久久久中文| 色婷婷成人综合| 亚洲精品电影网| 国产日韩精品一区二区| 亚洲成人精品视频| 91精品国产电影| 韩国精品久久久999| 38少妇精品导航| 亚洲精品国产suv| 国产精品成人一区二区| 亚洲精品久久久久久久久久久| 久久久视频精品| 久久精品亚洲94久久精品| 亚洲精品国产精品自产a区红杏吧| 亚洲乱码一区av黑人高潮| 亚洲欧美国产日韩中文字幕| 欧美人与性动交a欧美精品| 91精品国产高清| 日韩精品www| 国产精品狠色婷| 国产精品久久电影观看| 精品中文字幕视频| 国产精品久久久久久久久久| 91精品视频免费观看| 久久久av免费| 精品久久香蕉国产线看观看亚洲| 欧美国产日本在线| 久久久久久久爱| 欧美亚洲成人网| 国产精品1区2区在线观看| 日韩免费在线免费观看| 欧美日韩视频在线| 精品亚洲一区二区| 日韩精品在线影院| 久久久久久这里只有精品| 欧美成人在线免费| 亚洲一区二区少妇| 国产啪精品视频| 日韩av男人的天堂| 亚洲综合精品一区二区| 亚洲美女又黄又爽在线观看| 欧美在线性爱视频| 日本精品久久久|