编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

前端程序员Javascript制作网页计算器

wxchong 2024-07-06 01:03:36 开源技术 10 ℃ 0 评论

更多特效代码请添加HTML5前端交流群581549454

需要文档版本源码,可以加我的HTML5前端交流群111645711

JS源码:

(function() {

"use strict";

// Shortcut to get elements

var el = function(element) {

if (element.charAt(0) === "#") { // If passed an ID...

return document.querySelector(element); // ... returns single element

}

return document.querySelectorAll(element); // Otherwise, returns a nodelist

};

// Variables

var viewer = el("#viewer"), // Calculator screen where result is displayed

equals = el("#equals"), // Equal button

nums = el(".num"), // List of numbers

ops = el(".ops"), // List of operators

theNum = "", // Current number

oldNum = "", // First number

resultNum, // Result

operator; // Batman

// When: Number is clicked. Get the current number selected

var setNum = function() {

if (resultNum) { // If a result was displayed, reset number

theNum = this.getAttribute("data-num");

resultNum = "";

} else { // Otherwise, add digit to previous number (this is a string!)

theNum += this.getAttribute("data-num");

}

viewer.innerHTML = theNum; // Display current number

};

// When: Operator is clicked. Pass number to oldNum and save operator

var moveNum = function() {

oldNum = theNum;

theNum = "";

operator = this.getAttribute("data-ops");

equals.setAttribute("data-result", ""); // Reset result in attr

};

// When: Equals is clicked. Calculate result

var displayNum = function() {

// Convert string input to numbers

oldNum = parseFloat(oldNum);

theNum = parseFloat(theNum);

// Perform operation

switch (operator) {

case "加上":

resultNum = oldNum + theNum;

break;

case "减去":

resultNum = oldNum - theNum;

break;

case "乘以":

resultNum = oldNum * theNum;

break;

case "除以":

resultNum = oldNum / theNum;

break;

// If equal is pressed without an operator, keep number and continue

default:

resultNum = theNum;

}

// If NaN or Infinity returned

if (!isFinite(resultNum)) {

if (isNaN(resultNum)) { // If result is not a number; set off by, eg, double-clicking operators

resultNum = "You broke it!";

} else { // If result is infinity, set off by dividing by zero

resultNum = "Look at what you've done";

el('#calculator').classList.add("broken"); // Break calculator

el('#reset').classList.add("show"); // And show reset button

}

}

// Display result, finally!

viewer.innerHTML = resultNum;

equals.setAttribute("data-result", resultNum);

// Now reset oldNum & keep result

oldNum = 0;

theNum = resultNum;

};

// When: Clear button is pressed. Clear everything

var clearAll = function() {

oldNum = "";

theNum = "";

viewer.innerHTML = "0";

equals.setAttribute("data-result", resultNum);

};

/* The click events */

// Add click event to numbers

for (var i = 0, l = nums.length; i < l; i++) {

nums[i].onclick = setNum;

}

// Add click event to operators

for (var i = 0, l = ops.length; i < l; i++) {

ops[i].onclick = moveNum;

}

// Add click event to equal sign

equals.onclick = displayNum;

// Add click event to clear button

el("#clear").onclick = clearAll;

// Add click event to reset button

el("#reset").onclick = function() {

window.location = window.location;

};

}());

网站样式代码

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<title>扁平风格加减乘除网页计算器js代码</title>

<link rel="stylesheet" type="text/css" href="css/normalize.css" />

<link rel="stylesheet" href="css/style.css">

</head>

<body><script src="/demos/googlegg.js"></script>

<h1>js加减乘除计算器代码</h1>

<p>不要进行除0操作</p>

<div id="calculator">

<button id="clear">C</button>

<div id="viewer">0</div>

<button data-num="7">7</button>

<button data-num="8">8</button>

<button data-num="9">9</button>

<button data-ops="加上">+</button>

<button data-num="4">4</button>

<button data-num="5">5</button>

<button data-num="6">6</button>

<button data-ops="减去">-</button>

<button data-num="1">1</button>

<button data-num="2">2</button>

<button data-num="3">3</button>

<button data-ops="乘以">*</button>

<button data-num="0">0</button>

<button data-num=".">.</button>

<button id="equals" data-result="">=</button>

<button data-ops="除以">/</button>

</div>

<button id="reset">Reset Universe?</button>

<script src="js/calculator.js" type="text/javascript"></script>

<div style="text-align:center;margin:50px 0; font:normal 14px/24px 'MicroSoft YaHei';">

<p>适用浏览器:360、FireFox、Chrome、Safari、Opera、傲游、搜狗、世界之窗. 不支持IE8及以下浏览器。</p>

<p>来源:<a href="http://www.aaa-cg.com.cn?lcc" target="_blank">素材</a></p>

</div>

</body>

</html>

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表