您好,登錄后才能下訂單哦!
這篇文章主要介紹了怎么使用JavaScript實現網頁版簡易計算器功能的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇怎么使用JavaScript實現網頁版簡易計算器功能文章都會有所收獲,下面我們一起來看看吧。
運行效果
運行:直接將下面的代碼放到任意文本文件中,文件后綴名改為.html,然后用任意瀏覽器打開即可。
實現思路以及代碼
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>網頁版的簡易計算器</title> <!--使用js完成,之后可用:jquery--> <!- --> <style> /*設置input的寬度和高度*/ input{ width: 396px; height: 50px; font-size: 30px; } /*表格的行文本左右居中*/ tr{ /*text-align*/ text-align: center; } /*設置單元格的內容寬度和高度以及字體大小*/ td{ width: 100px; height: 119px; font-size:30px; } /*偽類選擇器:hover*/ td:hover{ /*指定背景色*/ background-color: greenyellow; /*cursor:pointer * 鼠標經過的時候,變成小手 */ cursor:pointer ; } </style> </head> <body> <!-- cellspacing:單元邊沿和單元格之間的空間 cellpadding:單元格和單元格之間的空間 --> <!--在input上面寫一個div: 指定這個當前系統時間--> <!--禁用文本框的輸入功能:disabled:disabled--> <center><input type="text" value="0" id="show" disabled="disabled" /></center> <table border="1px" cellspacing="0" cellpadding="2" align="center" width="400px" height="600px"> <tr> <td id="clear">C</td> <td id="del">退格</td> <td>%</td> <td class="operator">/</td> </tr> <tr> <td class="num">7</td> <td class="num">8</td> <td class="num">9</td> <td class="operator">*</td> </tr> <tr> <td class="num">4</td> <td class="num">5</td> <td class="num">6</td> <td class="operator">-</td> </tr> <tr> <td class="num">1</td> <td class="num">2</td> <td class="num">3</td> <td class="operator">+</td> </tr> <tr> <td colspan="2" class="num">0</td> <td class="num">.</td> <td id="result">=</td> </tr> </table> </body> <script> /** * - 1.頁面布局 要么使用div+css,要么table布局 table布局:5行4列的表格 div+css布局:大的div 嵌套兩個字div(輸入框的和鍵盤) 2.邏輯處理 2.1 將數字鍵和小數點看成一類:clas="num" 2.2 將運算符看成一類:class="operator" 2.3 將清除鍵,退格鍵,=(等號),顯示框,單獨設置id屬性 2.4 獲取顯示框,清除鍵,=號,推格鍵所在的標簽對象 2.5 獲取數字鍵所在的對象并設置點擊事件 2.6 獲取運算符所在的對象并設置點擊事件 */ //獲取顯示框所在的標簽對象 var showResult = document.getElementById("show") ; //獲取清除鍵所在的標簽對象 var clear = document.getElementById("clear") ; //獲取退格鍵所在的標簽對象 var del = document.getElementById("del") ; //獲取等號所在的對象 var result = document.getElementById("result") ; //定義三個變量,分別保存第一個數,第二個數以及運算符 //第一個數 var numValue1 = "" ; //第二個數 var numValue2 = "" ; //操作符 var oper ="" ; //獲取數字鍵,包含小數點,并設置點擊事件 var nums = document.getElementsByClassName("num") ; //遍歷數字,分別設置點擊事件 for(var i = 0 ; i< nums.length ; i++){ //設置點擊事件:使用匿名函數 nums[i].onclick = function(){ //小數點的問題:只能出現一個: /** * 如果這個this.innerTest==. * //小數點只能出現一個 * 否則: * 不是小數點,就屬于整數運算 * numValue1 += this.innerText; showResult.value = numValue1*1 ; //去掉首尾無效0 */ //測試 // alert("獲取到了每一個數字對象") ; //將點擊的數字顯示到文本框上 //將nums[i]--->看成一個this:代表當前數字鍵對象的內存地址值 //var text = this.innerText ; //普通文本 //測試 // alert(tesxt) ; //改變顯示框對象的value屬性 //showResult.value = text; //問題1:目前:用戶輸入第一個數只能是一位數的 //將數字內容賦值給第一個數,然后將第一個數展示到文本框上 // numValue1 = this.innerText ; numValue1 += this.innerText; // showResult.value = numValue1*1 ; //去掉首尾無效0 showResult.value = numValue1 ; //去掉首尾無效0 //問題2:小數點的問題(小數點只能出現一個) } } //獲取運算符所在的對象并設置點擊事件 var operators = document.getElementsByClassName("operator") ; //遍歷操作符,設置點擊事件 for(var i = 0 ; i < operators.length ; i++){ //設置點擊 operators[i].onclick = function(){ /** * 判斷numValue2的值是否為空: * 如果是numValue2=="" * 如果numValue2不是空字符串 * 用戶可能點擊等號或者運算符 */ if(numValue2==""){ numValue2 = numValue1 ; numValue1 = "" ; //保存操作符 oper = this.innerText ; }else{ //用戶要么點擊=號要么進行四則運算 //問題:應該將計算的結果賦值numValue2,清空numvalue1 if(numValue1!=""){ resultFn() ; } //保留操作符 oper = this.innerText ; } //測試 //alert("運算符獲取到了") ; //做運算 :思考如何做運算,最終處理 //將第二個數賦值第一個數,然后將第一個數清空,等待接收用戶下一次輸入的數據 /* numValue2 = numValue1 ; numValue1 = "" ; //保存操作符 oper = this.innerText ;*/ } } //關于其他的操作:清除鍵 //設置清除鍵的點擊事件 clear.onclick = function(){ //將第一個數,第二個數以及運算符都情況掉 //顯示框顯示默認值0 numValue1 = "" ; numValue2 = "" ; oper = "" ; showResult.value = "0" ; } //刪除鍵的邏輯,設置點擊事件 del.onclick = function(){ // alert("abc") ; //可以用到String :substring()截取功能 if(numValue1.length!=1){ //進行截取:從0索引開始截取到當前numValue1.length-1處的位置結束,將其值 //賦值給numValue1 //場景:刪除剩余一個數字即可 numValue1 = numValue1.substring(0,numValue1.length-1) ; //alert(numValue1) ; //將numValue1顯示文本框上 // showResult.value = numValue1 *1 ; //去掉首位無效0 showResult.value = numValue1 ; // } // else{ // //自己處理 //將第一個數,第二個數,運算符清空掉 // } } //給等號添加點擊事件,做四則運算 result.onclick = function(){ //抽取出一個方法 resultFn() ; } //具體做四則運算的方法 function resultFn(){ //定義運算的兩個數據: one ,two //數據類型轉換 var one = new Number(numValue2) ;//實際是第二個數 var two = new Number(numValue1) ;//實際第一個數 //保存計算結果 var r = null ; //根據運算符進行判斷,switch語句 switch(oper){ case "+": r = one + two ; break ; case "-": r = one - two ; break; case "*": r = one * two ; break ; case "/": //除數不能為0 //判斷 /* if(two==0){ //將數據情況掉 //并且彈框提示;除數不能為0 r = 0 }else{ one /two ; }*/ r = one /two ; break ; } //將計算結果展示到顯示框上 // showResult.value = r ; //將計算的結果進行保留小數點的有戲位 // numValue2 = r ; numValue2 = new Number(r).toFixed(6) ; numValue1 = "" ; //numValue1清空了 showResult.value = numValue2*1; // numValue2*1 //問題1 :1.2 * 3 = 3.599999996 //問題2:去掉首尾無效0 :parseFloat() //問題3:在四則元素:判斷用戶如果是點擊等號或者點擊繼續運算,每一次都將第一個數清空掉了, //判斷第一個數是否為空 //問題4:小數點問題:小數點只能出現一個 //四則運算的問題: /** * 用戶輸入兩個數據目前是直接處理結果,那么如何判斷用戶是要點擊=號還是繼續進行四則運算? * 在運算符點擊監聽事件中去坐 * 判斷numValue2的值是否為空: * 如果是numValue2=="" * 如果numValue2不是空字符串 * 用戶可能點擊等號或者運算符 * */ } </script> </html>
關于“怎么使用JavaScript實現網頁版簡易計算器功能”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“怎么使用JavaScript實現網頁版簡易計算器功能”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。