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

首頁 > 編程 > JavaScript > 正文

vue.js實現的經典計算器/科學計算器功能示例

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

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

1. HTML部分:

<script src="https://cdn.bootcss.com/vue/2.5.16/vue.min.js"></script><div id="app"> <div class="calculator">  <button @click="changeModeEvent" class="toggle-button">   <p v-if="changeMode">Show Advanced Mode   ⚈</p>   <p v-else>Show Basic Mode   ⚆</p>  </button>  <div class="results">   <input class="input" v-model="current" />  </div>  <div class="mode" v-if="changeMode">   <button class="button" @click="press">7</button>   <button class="button" @click="press">8</button>   <button class="button" @click="press">9</button>   <button class="button" @click="press">*</button>   <button class="button" @click="press"><=</button>   <button class="button" @click="press">C</button>   <button class="button" @click="press">4</button>   <button class="button" @click="press($event)">5</button>   <button class="button" @click="press">6</button>   <button class="button" @click="press">/</button>   <button class="button" @click="press">(</button>   <button class="button" @click="press">)</button>   <button class="button" @click="press">1</button>   <button class="button" @click="press">2</button>   <button class="button" @click="press">3</button>   <button class="button" @click="press">-</button>   <button class="button" @click="press">x 2</button>   <button class="button" @click="press">±</button>   <button class="button" @click="press">0</button>   <button class="button" @click="press">.</button>   <button class="button" @click="press">%</button>   <button class="button" @click="press">+</button>   <button class="button equal-sign" @click="press">=</button>   </div>  <div class="mode" v-else>   <button class="button" @click="press">sin</button>   <button class="button" @click="press">cos</button>   <button class="button" @click="press">tan</button>   <button class="button" @click="press">x^</button>   <button class="button" @click="press"><=</button>   <button class="button" @click="press">C</button>   <button class="button" @click="press">log</button>   <button class="button" @click="press">ln</button>   <button class="button" @click="press">e</button>   <button class="button" @click="press">°</button>   <button class="button" @click="press">rad</button>   <button class="button" @click="press">√</button>   <button class="button" @click="press">7</button>   <button class="button" @click="press">8  </button>   <button class="button" @click="press">9</button>   <button class="button" @click="press">/</button>   <button class="button" @click="press">x 2</button>   <button class="button" @click="press">x !</button>   <button class="button" @click="press">4</button>   <button class="button" @click="press">5</button>   <button class="button" @click="press">6</button>   <button class="button" @click="press">*</button>   <button class="button" @click="press">(</button>   <button class="button" @click="press">)</button>   <button class="button" @click="press">1</button>   <button class="button" @click="press">2</button>   <button class="button" @click="press">3</button>   <button class="button" @click="press">-</button>   <button class="button" @click="press">%</button>   <button class="button" @click="press">±</button>   <button class="button" @click="press">0</button>   <button class="button" @click="press">.</button>   <button class="button" @click="press">π</button>   <button class="button" @click="press">+</button>             <button class="button equal-sign" @click="press">=</button>  </div> </div></div>

2. css部分:

body { background: linear-gradient(to right, #85D8CE, #085078);}#app { font-family: 'Avenir', Helvetica, Arial, sans-serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-align: center; color: #2c3e50; display: flex; flex-wrap: wrap; justify-content: center; align-item: center;}.calculator { width: 440px; padding: 20px; border-radius: 5px; margin: 20px auto; font-size: 16px; background-color: #333333;}.input { width: 420px; height: 50px; border-radius: 0px; border: 1px solid black; background-color: #333333; color: #d9d9d9; padding: 0 5px 0 5px; margin: 0 0px 10px 0px; font-size: 30px;}.input:focus,.input:active { border-color: #03a9f4; box-shadow: 0 0 4px #03A9F4; outline: none 0;}.button { margin: 3px; width: 63px; border: 1px solid #0d0d0d; height: 30px; border-radius: 4px; color: #d9d9d9; background-color: #1a1a1a; cursor: pointer; outline: none;}.mode { display: flex; flex-wrap: wrap; justify-content: space-evenly;}.equal-sign { background-color: green; width: 133px;}.toggle-button { border: none; background-color: #333333; cursor: pointer; outline: none; font-size: 1rem; color: #fff; text-shadow: -1px -1px 0 rgba(0, 0, 0, 0.35);}p { margin-top: 0;}button::-moz-focus-inner { border-color: transparent;}

3. js部分:

let app = new Vue({ el: '#app', data () {  return{    current: '',   changeMode: true  } }, methods: {  press: function (event) {   let me = this   let key = event.target.textContent   if (    key != '=' &&     key != 'C' &&    key != '*' &&    key != '/' &&    key != '√' &&    key != "x 2" &&    key != "%" &&    key != "<=" &&     key != "±" &&     key != "sin" &&     key != "cos" &&     key != "tan" &&     key != "log" &&     key != "ln" &&     key != "x^" &&     key != "x !" &&     key != "π" &&     key != "e" &&     key != "rad" &&     key != "°"   ) {    me.current += key   } else if (key === '=') {    if ((me.current).indexOf('^') > -1) {     let base = (me.current).slice(0, (me.current).indexOf('^'))     let exponent = (me.current).slice((me.current).indexOf('^') + 1)     me.current = eval('Math.pow(' + base + ',' + exponent + ')')    } else {     me.current = eval(me.current)    }   } else if (key === 'C') {    me.current = ''   } else if (key === '*') {    me.current += '*'   } else if (key === '/') {    me.current += '/'   } else if (key === '+') {    me.current += '+'   } else if (key === '-') {    me.current += '-'   } else if (key === '±') {    if ((me.current).charAt(0) === '-') {     me.current = (me.current).slice(1)    } else {     me.current = '-' + me.current    }   } else if (key === '<=') {    me.current = me.current.substring(0, me.current.length - 1)   } else if (key === '%') {    me.current = me.current / 100   } else if (key === 'π') {    me.current = me.current * Math.PI   } else if (key === 'x 2') {    me.current = eval(me.current * me.current)   } else if (key === '√') {    me.current = Math.sqrt(me.current)   } else if (key === 'sin') {    me.current = Math.sin(me.current)   } else if (key === 'cos') {    me.current = Math.cos(me.current)   } else if (key === 'tan') {    me.current = Math.tan(me.current)   } else if (key === 'log') {    me.current = Math.log10(me.current)   } else if (key === 'ln') {    me.current = Math.log(me.current)   } else if (key === 'x^') {    me.current += '^'   } else if (key === 'x !') {    let number = 1    if (me.current === 0) {     me.current = '1'    } else if (me.current < 0) {     me.current = NaN    } else {     let number = 1     for (let i = me.current; i > 0; i--) {      number *= i     }     me.current = number    }   } else if (key === 'e') {    me.current = Math.exp(me.current)   } else if (key === 'rad') {    me.current = me.current * (Math.PI / 180)   } else if (key === '°') {    me.current = me.current * (180 / Math.PI)   }  },  changeModeEvent: function() {   let me = this   me.changeMode = !me.changeMode  } }})

完整實例代碼如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>www.49028c.com vue.js計算器</title><style>body { background: linear-gradient(to right, #85D8CE, #085078);}#app { font-family: 'Avenir', Helvetica, Arial, sans-serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-align: center; color: #2c3e50; display: flex; flex-wrap: wrap; justify-content: center; align-item: center;}.calculator { width: 440px; padding: 20px; border-radius: 5px; margin: 20px auto; font-size: 16px; background-color: #333333;}.input { width: 420px; height: 50px; border-radius: 0px; border: 1px solid black; background-color: #333333; color: #d9d9d9; padding: 0 5px 0 5px; margin: 0 0px 10px 0px; font-size: 30px;}.input:focus,.input:active { border-color: #03a9f4; box-shadow: 0 0 4px #03A9F4; outline: none 0;}.button { margin: 3px; width: 63px; border: 1px solid #0d0d0d; height: 30px; border-radius: 4px; color: #d9d9d9; background-color: #1a1a1a; cursor: pointer; outline: none;}.mode { display: flex; flex-wrap: wrap; justify-content: space-evenly;}.equal-sign { background-color: green; width: 133px;}.toggle-button { border: none; background-color: #333333; cursor: pointer; outline: none; font-size: 1rem; color: #fff; text-shadow: -1px -1px 0 rgba(0, 0, 0, 0.35);}p { margin-top: 0;}button::-moz-focus-inner { border-color: transparent;}</style></head><body><script src="https://cdn.bootcss.com/vue/2.5.16/vue.min.js"></script><div id="app"> <div class="calculator">  <button @click="changeModeEvent" class="toggle-button">   <p v-if="changeMode">Show Advanced Mode   ⚈</p>   <p v-else>Show Basic Mode   ⚆</p>  </button>  <div class="results">   <input class="input" v-model="current" />  </div>  <div class="mode" v-if="changeMode">   <button class="button" @click="press">7</button>   <button class="button" @click="press">8</button>   <button class="button" @click="press">9</button>   <button class="button" @click="press">*</button>   <button class="button" @click="press"><=</button>   <button class="button" @click="press">C</button>   <button class="button" @click="press">4</button>   <button class="button" @click="press($event)">5</button>   <button class="button" @click="press">6</button>   <button class="button" @click="press">/</button>   <button class="button" @click="press">(</button>   <button class="button" @click="press">)</button>   <button class="button" @click="press">1</button>   <button class="button" @click="press">2</button>   <button class="button" @click="press">3</button>   <button class="button" @click="press">-</button>   <button class="button" @click="press">x 2</button>   <button class="button" @click="press">±</button>   <button class="button" @click="press">0</button>   <button class="button" @click="press">.</button>   <button class="button" @click="press">%</button>   <button class="button" @click="press">+</button>   <button class="button equal-sign" @click="press">=</button>   </div>  <div class="mode" v-else>   <button class="button" @click="press">sin</button>   <button class="button" @click="press">cos</button>   <button class="button" @click="press">tan</button>   <button class="button" @click="press">x^</button>   <button class="button" @click="press"><=</button>   <button class="button" @click="press">C</button>   <button class="button" @click="press">log</button>   <button class="button" @click="press">ln</button>   <button class="button" @click="press">e</button>   <button class="button" @click="press">°</button>   <button class="button" @click="press">rad</button>   <button class="button" @click="press">√</button>   <button class="button" @click="press">7</button>   <button class="button" @click="press">8  </button>   <button class="button" @click="press">9</button>   <button class="button" @click="press">/</button>   <button class="button" @click="press">x 2</button>   <button class="button" @click="press">x !</button>   <button class="button" @click="press">4</button>   <button class="button" @click="press">5</button>   <button class="button" @click="press">6</button>   <button class="button" @click="press">*</button>   <button class="button" @click="press">(</button>   <button class="button" @click="press">)</button>   <button class="button" @click="press">1</button>   <button class="button" @click="press">2</button>   <button class="button" @click="press">3</button>   <button class="button" @click="press">-</button>   <button class="button" @click="press">%</button>   <button class="button" @click="press">±</button>   <button class="button" @click="press">0</button>   <button class="button" @click="press">.</button>   <button class="button" @click="press">π</button>   <button class="button" @click="press">+</button>             <button class="button equal-sign" @click="press">=</button>  </div> </div></div><script>let app = new Vue({ el: '#app', data () {  return{    current: '',   changeMode: true  } }, methods: {  press: function (event) {   let me = this   let key = event.target.textContent   if (    key != '=' &&     key != 'C' &&    key != '*' &&    key != '/' &&    key != '√' &&    key != "x 2" &&    key != "%" &&    key != "<=" &&     key != "±" &&     key != "sin" &&     key != "cos" &&     key != "tan" &&     key != "log" &&     key != "ln" &&     key != "x^" &&     key != "x !" &&     key != "π" &&     key != "e" &&     key != "rad" &&     key != "°"   ) {    me.current += key   } else if (key === '=') {    if ((me.current).indexOf('^') > -1) {     let base = (me.current).slice(0, (me.current).indexOf('^'))     let exponent = (me.current).slice((me.current).indexOf('^') + 1)     me.current = eval('Math.pow(' + base + ',' + exponent + ')')    } else {     me.current = eval(me.current)    }   } else if (key === 'C') {    me.current = ''   } else if (key === '*') {    me.current += '*'   } else if (key === '/') {    me.current += '/'   } else if (key === '+') {    me.current += '+'   } else if (key === '-') {    me.current += '-'   } else if (key === '±') {    if ((me.current).charAt(0) === '-') {     me.current = (me.current).slice(1)    } else {     me.current = '-' + me.current    }   } else if (key === '<=') {    me.current = me.current.substring(0, me.current.length - 1)   } else if (key === '%') {    me.current = me.current / 100   } else if (key === 'π') {    me.current = me.current * Math.PI   } else if (key === 'x 2') {    me.current = eval(me.current * me.current)   } else if (key === '√') {    me.current = Math.sqrt(me.current)   } else if (key === 'sin') {    me.current = Math.sin(me.current)   } else if (key === 'cos') {    me.current = Math.cos(me.current)   } else if (key === 'tan') {    me.current = Math.tan(me.current)   } else if (key === 'log') {    me.current = Math.log10(me.current)   } else if (key === 'ln') {    me.current = Math.log(me.current)   } else if (key === 'x^') {    me.current += '^'   } else if (key === 'x !') {    let number = 1    if (me.current === 0) {     me.current = '1'    } else if (me.current < 0) {     me.current = NaN    } else {     let number = 1     for (let i = me.current; i > 0; i--) {      number *= i     }     me.current = number    }   } else if (key === 'e') {    me.current = Math.exp(me.current)   } else if (key === 'rad') {    me.current = me.current * (Math.PI / 180)   } else if (key === '°') {    me.current = me.current * (180 / Math.PI)   }  },  changeModeEvent: function() {   let me = this   me.changeMode = !me.changeMode  } }})</script></body></html>

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

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
日韩经典一区二区三区| 国产视频精品一区二区三区| 欧美成人精品在线视频| 国产精品自产拍高潮在线观看| 国产日韩精品一区二区| 最新69国产成人精品视频免费| 亚洲视频在线观看网站| 在线精品视频视频中文字幕| 亚洲视频第一页| 自拍偷拍免费精品| 国产一区二区在线免费视频| 欧美影院成年免费版| 青青草原一区二区| 亚洲成人av中文字幕| 久久久久久久国产精品视频| 自拍视频国产精品| 精品视频偷偷看在线观看| 精品中文字幕久久久久久| 中文字幕亚洲欧美一区二区三区| 主播福利视频一区| 亚洲第一精品电影| 中文欧美在线视频| 亚洲精品福利免费在线观看| 色偷偷av亚洲男人的天堂| 91免费福利视频| 2024亚洲男人天堂| 欧美激情视频播放| 免费99精品国产自在在线| 中文亚洲视频在线| 尤物九九久久国产精品的特点| 亚洲国产91精品在线观看| 久久99精品久久久久久琪琪| 97人洗澡人人免费公开视频碰碰碰| 久久精品视频中文字幕| 另类少妇人与禽zozz0性伦| 中文字幕日韩av| 91高清在线免费观看| 在线电影av不卡网址| 亚洲国产欧美久久| 懂色av影视一区二区三区| 国产精品99久久久久久人| 北条麻妃在线一区二区| 欧美激情日韩图片| 国产精品久久久久久久久久免费| 欧美亚洲另类激情另类| 欧美一级视频在线观看| 国产不卡视频在线| 日韩欧美中文字幕在线播放| 色综合影院在线| 一区国产精品视频| 成人网中文字幕| 精品高清美女精品国产区| 亚洲人成人99网站| 欧美日韩国产一中文字不卡| 成人天堂噜噜噜| 久久久久在线观看| 亚洲三级 欧美三级| 欧美日韩国产第一页| 精品一区电影国产| 成人乱色短篇合集| 亚洲成人aaa| 久久天堂av综合合色| 久久精品国产91精品亚洲| 7777精品久久久久久| 久久国产精品偷| 国产欧美一区二区白浆黑人| 国产精品久久久久久久av大片| 久久久久久久久电影| 国产99久久精品一区二区永久免费| 国产成人精品免费久久久久| 亚洲欧美一区二区三区情侣bbw| 日韩欧美一区二区三区久久| 欧美国产欧美亚洲国产日韩mv天天看完整| 日韩69视频在线观看| 亚洲情综合五月天| 国产精品美乳一区二区免费| 18久久久久久| 精品中文视频在线| 国产精品网站入口| 一区二区亚洲精品国产| 91精品国产高清久久久久久久久| 91久久在线观看| 欧美精品video| 久久久精品视频在线观看| 欧美成人亚洲成人日韩成人| 亚洲香蕉av在线一区二区三区| 国产精品91免费在线| 久久国产精品99国产精| 欧美日韩国产中文精品字幕自在自线| 高清亚洲成在人网站天堂| 国产精品久久久久久久久久久久| 日韩精品极品视频免费观看| 欧美亚洲日本黄色| 中文字幕日韩av| 国内精品小视频| 亚洲欧美日本伦理| 国产精品丝袜一区二区三区| 中文字幕日韩精品在线观看| 国内精品久久久| 亚洲人成欧美中文字幕| 国产日韩欧美日韩大片| 欧美成aaa人片在线观看蜜臀| 狠狠综合久久av一区二区小说| 亚洲天堂av在线免费观看| 一本一本久久a久久精品综合小说| 欧美精品九九久久| 国产不卡av在线免费观看| 亚洲福利在线观看| 国产精品白丝av嫩草影院| 亚洲缚视频在线观看| 久久精品国产精品| 狠狠躁夜夜躁久久躁别揉| 亚洲女人被黑人巨大进入| 欧美精品久久久久久久免费观看| 91精品国产九九九久久久亚洲| 久久在精品线影院精品国产| 久久亚洲国产成人| 中文字幕av一区二区三区谷原希美| 亚洲国产精品久久久久| 欧美成人精品在线观看| 2020久久国产精品| 日韩精品极品在线观看播放免费视频| 91超碰caoporn97人人| 亚洲电影免费观看高清完整版在线观看| 国产亚洲免费的视频看| 尤物yw午夜国产精品视频| 欧美另类第一页| 久久999免费视频| 亚洲在线一区二区| 国产精品扒开腿做| 国产成人精品最新| 国产精品444| 91精品国产综合久久香蕉| 欧美电影免费看| 国产亚洲一区二区在线| 在线性视频日韩欧美| 一本色道久久88综合亚洲精品ⅰ| 亚洲欧美日韩中文在线| 2019中文字幕在线观看| 亚洲国产小视频在线观看| 91福利视频网| 欧美激情精品在线| 国产精品电影一区| 精品久久久久久久久久久久久久| 91色在线视频| 欧美成人午夜激情| 久久99视频免费| 欧美成在线观看| 懂色av中文一区二区三区天美| 色视频www在线播放国产成人| 97超级碰在线看视频免费在线看| 久久久亚洲精选| 日韩在线一区二区三区免费视频| 一区二区三区在线播放欧美| 欧美肥老妇视频| 亚洲精品久久久久久久久久久久久| 国产精品视频久久久久| 国产精品久久久久久久午夜| 一区国产精品视频| 亚洲a成v人在线观看| 亚洲一区第一页| 国产精品久久久久久久久影视| 亚洲成人xxx| 这里只有精品视频|