您好,登錄后才能下訂單哦!
這篇文章主要介紹了Vue實現計算器計算效果的發,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。
具體代碼,供大家參考,
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width,initial-scale=1.0"> <script src="../js/vue.js"></script> <title>compare</title> <style type="text/css"> *{ padding: 0; margin: 0; box-sizing: border-box; } body{ background-color: #000000; } .panle{ border: 1px solid #5f5f5f; width: 100vw; height: 29vh; font-size: 3.8125rem; color: #FFFFFF; text-align: right; position: relative; } .curr{ display: block; position: absolute; width: inherit; bottom: 0; font-size: 3.5rem; } .operation{ display: block; position: absolute; width: inherit; bottom: 80px; font-size: 2.875rem; } .prev{ font-size: 2.875rem; display: block; position: absolute; width: inherit; bottom: 8rem; } .keyboad{ display: flex; flex-flow: row wrap; margin: 0 calc((8vw - 16px) / 2); } .key{ display: inline-block; border: 1px solid #333; width: 23vw; height: 23vw; border-radius: 50%; text-align: center; font-size: 30px; line-height: 23vw; margin: 2px; background-color: #616161; color: #ffffff; cursor: pointer; outline: none; border: none; box-shadow: 0 9px #999; } .key:active { box-shadow: 0 5px #666; transform: translateY(4px); } .key:last-child{ border-radius: 30%; flex-grow: 1; margin: 0; } .highlight{ background-color: #e77919; } </style> </head> <body> <div id="app"> <div class="panle"> <span class="prev">{{prevNum}}</span> <span class="operation">{{operation}}</span> <span class="curr">{{currNum}}</span> </div> <div class="keyboad"> <div class="key highlight" @click="clear">AC</div> <div class="key highlight" @click="back"><-</div> <div class="key highlight">#</div> <div class="key highlight" @click="except">/</div> <div class="key">7</div> <div class="key">8</div> <div class="key">9</div> <div class="key highlight" @click="ride">*</div> <div class="key">4</div> <div class="key">5</div> <div class="key">6</div> <div class="key highlight" @click="reduce">-</div> <div class="key">1</div> <div class="key">2</div> <div class="key">3</div> <div class="key highlight" @click="add">+</div> <div class="key">0</div> <div class="key">.</div> <div class="key highlight" @click="result">=</div> </div> </div> <script type="text/javascript"> let vm = new Vue({ el:"#app", data(){ return{ operation:'', prevNum:'', currNum:'', keyboard:[], arr:[], res:'' } }, mounted() { this.keyboard = document.querySelectorAll('div[class=key]'); Array.from(this.keyboard, key => key.addEventListener('click',this.getVal)) }, methods:{ getVal(e){ this.currNum += e.target.innerHTML; this.arr.push(e.target.innerHTML); }, clear(){ this.prevNum = this.operation = this.currNum = ''; }, back(){ this.arr.splice(-1,1) this.currNum = this.arr.join('') }, add(){ this.prevNum = this.currNum; this.currNum = ''; this.operation = '+'; }, reduce(){ this.prevNum = this.currNum; this.currNum = ''; this.operation = '-'; }, ride(){ this.prevNum = this.currNum; this.currNum = ''; this.operation = '*'; }, except(){ this.prevNum = this.currNum; this.currNum = ''; this.operation = '/'; }, result(){ switch(this.operation){ case'+': this.res = Number(this.currNum) + Number(this.prevNum); break; case'-': this.res = Number(this.prevNum) - Number(this.currNum); break; case'*': this.res = Number(this.prevNum) * Number(this.currNum); break; case'/': this.res = Number(this.prevNum) / Number(this.currNum); break; } this.clear(); this.currNum = this.res; this.arr = []; } } }) </script> </body> </html>
感謝你能夠認真閱讀完這篇文章,希望小編分享Vue實現計算器計算效果的發內容對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,遇到問題就找億速云,詳細的解決方法等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。