JavaScript經(jīng)典案例之簡(jiǎn)易計(jì)算器
本文實(shí)例為大家分享了JavaScript實(shí)現(xiàn)簡(jiǎn)易計(jì)算器的具體代碼,供大家參考,具體內(nèi)容如下
效果圖:
邏輯:
1、首先通過(guò)遍歷,為所有元素添加事件; 2、各個(gè)按鈕功能分別實(shí)現(xiàn)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <style> .one { width: 50px; height: 50px; background: #f60; display: inline-block; line-height: 50px; color: #fff; margin: 5px 5px 5px 0; font-size: 23px; text-align: center; cursor: pointer; } .two { width: 112px; height: 50px; background: #f60; color: #fff; font-size: 23px; display: inline-block; margin-top: 5px; text-align: center; line-height: 50px; cursor: pointer; } .tools { background: blue; cursor: pointer; } .cal { height: 100px; position: relative; background: #999; width: 228px; color: #fff; font-size: 23px; cursor: pointer; } .cal_content { position: absolute; bottom: 10px; right: 10px; word-break: normal; cursor: pointer; } </style> <body> <div> <div class="cal"> <span class="cal_content" id="cal_content">0</span> </div> <div> <span class="one tools calbtn">*</span> <span class="one tools calbtn">/</span> <span class="one tools" id="del">CE</span> <span class="one tools" id="resset">AC</span> </div> <div> <span class="one calbtn">7</span> <span class="one calbtn">8</span> <span class="one calbtn">9</span> <span class="one tools calbtn">+</span> </div> <div> <span class="one calbtn"> 4</span> <span class="one calbtn">5</span> <span class="one calbtn">6</span> <span class="one tools calbtn">-</span> <!-- <span clas>-</span> --> </div> <div> <span class="one calbtn">1</span> <span class="one calbtn">2</span> <span class="one calbtn">3</span> <span class="one tools calbtn">.</span> </div> <div> <span class="two calbtn">0</span> <span class="two tools " id="fin">=</span> </div> </div> </body> <script> // 獲取標(biāo)簽 var cal_content = document.getElementById('cal_content'); var btn = document.getElementsByClassName('calbtn'); var caltext = ''; // // 遍歷,添加事件 for (var i = 0; i < btn.length; i++) { btn[i].addEventListener('click', function () { // this指代 當(dāng)前對(duì)象 caltext += this.innerHTML; cal_content.innerHTML = caltext }) } // 清空 var resset = document.getElementById('resset'); resset.addEventListener('click', function () { cal_content.innerHTML = '0'; caltext = ''; // }) // 刪除鍵 var del = document.getElementById('del'); del.addEventListener('click', function () { caltext = caltext.substring(0, caltext.length - 1); cal_content.innerHTML = caltext if (cal_content.innerHTML.length == 0) { cal_content.innerHTML = '0'; } }) //等號(hào)鍵 var fin = document.getElementById('fin'); fin.addEventListener('click', function () { // console.log(caltext) cal_content.innerHTML = eval(caltext); caltext = eval(caltext); // console.log(caltext) }) // 鍵盤事件 document.onkeyup = function (event) { var event = event || window.event; console.log(event.key) // 判斷F5和CTRl鍵 if(event.keyCode==116 || event.keyCode == 17){ return; } // 判斷是否是 回車鍵 if (event.keyCode == 13) { cal_content.innerHTML = eval(caltext); caltext = eval(caltext); return; } caltext += event.key cal_content.innerHTML = caltext; } </script> </html>
總計(jì):
1、通過(guò)對(duì)象點(diǎn)擊將元素的值鏈接在一起,最后通過(guò)**eval()函數(shù)**進(jìn)行計(jì)算,將最終結(jié)果反饋到顯示區(qū)域
2、設(shè)置一個(gè)全局表變量 *var caltext = ‘'; * 存放計(jì)算字符串
3、ondoucument.onkeyup = function(){ //代碼 } 鍵盤事件
更多計(jì)算器功能實(shí)現(xiàn),請(qǐng)點(diǎn)擊專題: 計(jì)算器功能匯總 進(jìn)行學(xué)習(xí)
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
javascript(js) join函數(shù)使用方法介紹
javascript(js) join函數(shù)使用方法介紹...2007-11-11微信小程序骨架屏的應(yīng)用與實(shí)現(xiàn)步驟詳細(xì)記錄
所謂骨架屏就是在頁(yè)面數(shù)據(jù)尚未加載前先給用戶展示出頁(yè)面的大致結(jié)構(gòu),直到請(qǐng)求數(shù)據(jù)返回后再渲染頁(yè)面,補(bǔ)充進(jìn)需要顯示的數(shù)據(jù)內(nèi)容,這篇文章主要給大家介紹了關(guān)于微信小程序骨架屏的應(yīng)用與實(shí)現(xiàn)的相關(guān)資料,需要的朋友可以參考下2022-05-05獲取DOM對(duì)象的幾種擴(kuò)展及簡(jiǎn)寫
獲取DOM對(duì)象的幾種擴(kuò)展及簡(jiǎn)寫...2006-10-10基于JavaScript實(shí)現(xiàn)高德地圖和百度地圖提取行政區(qū)邊界經(jīng)緯度坐標(biāo)
本文給大家介紹javascript實(shí)現(xiàn)高德地圖和百度地圖提取行政區(qū)邊界經(jīng)緯度坐標(biāo)的相關(guān)知識(shí),本文實(shí)用性非常高,代碼簡(jiǎn)單易懂,需要的朋友參考下吧2016-01-01