js网页计算器(按键+点击)

var text = document.getElementById(‘text‘);// 显示文本
var by = document.getElementById(‘by‘);  //按钮生成区域
//按键的value
var str = new Array(‘2‘, ‘√‘, ‘=‘, ‘清除‘, ‘1‘, ‘2‘, ‘3‘, ‘+‘, ‘4‘, ‘5‘, ‘6‘, ‘-‘, ‘7‘, ‘8‘, ‘9‘, ‘ב, ‘0‘, ‘.‘, ‘±‘, ‘÷‘);
var x = ‘‘,// 计算的值1
    y = ‘‘;//值2
var fu = "0";// 运算符号 + - * /
text.value = 0; //初始化为0
document.body.onload = function() {   // 加载中执行
    for(var i = 0; i < str.length; i++) {   // 循环遍历生成按键按钮 并赋值设置样式
        var bt_value = document.createElement(‘button‘);//创建
        by.appendChild(bt_value);//父节点添加
        bt_value.setAttribute("name", str[i]); //属性设置
        style(bt_value, i);//设置样式

    }
    document.body.onkeydown = function(event) {  //设置用户按键事件
        var e = event || window.event;  //解决不同浏览器问题
        if(text.value == ‘0‘ && (e.keyCode > 95 && e.keyCode < 106)) { //第一次按下数字替换0
            text.value = e.keyCode - 96;
        } else if(e.keyCode > 95 && e.keyCode < 106) {  //第二次按下数字 text.value的值+=event
            text.value += e.keyCode - 96;
        }

        if(e.keyCode == 107) {//按下+号的情况
            x = text.value;   //x储存第一个数
            text.value = ‘‘;   //让用户输入第二个数
            fu = ‘+‘;        //fu= ’+‘
        } else if(e.keyCode == 109) { //按下-号的情况
            x = text.value;
            text.value = ‘‘;
            fu = ‘-‘;
        } else if(e.keyCode == 106) {//按下*号的情况
            x = text.value;
            text.value = ‘‘;
            fu = ‘*‘;
        } else if(e.keyCode == 111) {//按下/号的情况
            x = text.value;
            text.value = ‘‘;
            fu = ‘/‘;
        }
        if(e.keyCode == 108 || e.keyCode == 13) {//按下键盘的两个enter 情况 ==等于
            y = text.value;    //y等于第二个数

            switch(fu) {    //判断fu的值
                case ‘+‘:
                    text.value = Number(x) + Number(y);
                    break;
                case ‘-‘:
                    text.value = Number(x) - Number(y);
                    break;
                case ‘*‘:
                    text.value = Number(x) * Number(y);
                    break;
                case ‘/‘:
                    text.value = Number(x) / Number(y);
                    break;
                default:
                    alert("请重新输入");
            }
        }
        if(e.keyCode == 110) {  //按下.的情况
            var flag = 0;    // 判断text.value是否含有.
            for(var j = 0; j < text.value.length; j++) {//遍历
                if(text.value[j] == ‘.‘)
                    flag++;
            }
            if(flag == 0)//没有就加.
                text.value += ‘.‘;

        }
        if(e.keyCode == 27)//按下esc 清除
            text.value = 0;
        if(e.keyCode==8){    //按下backspace 删除一个字符
            if(text.value!=0)
            text.value=text.value.substr(0,text.value.length-1);//substr 从0截取到该长度-1
        }
    }
        by.onclick = function t(event) {// 用户点击按钮事件

            var event = event || window.event;
            var re = /\d/;    //正则[0-9]
            if(text.value == ‘0‘&& re.test(event.target.innerHTML)) {//第一次按下数字替换0

                text.value = event.target.innerHTML;
            } else if(re.test(event.target.innerHTML)) {//第二次按下数字 text.value的值+=event
                text.value += event.target.innerHTML;
            }
            if(event.target.innerHTML == ‘清除‘)//当点击清除执行
                text.value = 0;
            if(event.target.innerHTML == "+") { //当点击+执行
                x = text.value;
                text.value = ‘‘;
                fu = ‘+‘;
            } else if(event.target.innerHTML == "-") {//当点击-执行
                x = text.value;
                text.value = ‘‘;
                fu = ‘-‘;
            } else if(event.target.innerHTML == "×") {//当点击x执行
                x = text.value;
                text.value = ‘‘;
                fu = ‘*‘;
            } else if(event.target.innerHTML == "÷") {//当点击/执行
                x = text.value;
                text.value = ‘‘;
                fu = ‘/‘;
            }
            if(event.target.innerHTML == ‘=‘) {//当点击=执行
                y = text.value;   //y储存第二个数

                switch(fu) {   // fu =+| -| x| /
                    case ‘+‘:
                        text.value = Number(x) + Number(y);
                        break;
                    case ‘-‘:
                        text.value = Number(x) - Number(y);
                        break;
                    case ‘*‘:
                        text.value = Number(x) * Number(y);
                        break;
                    case ‘/‘:
                        text.value = Number(x) / Number(y);
                        break;
                    default:
                        alert("请重新输入");
                }
            }
            if(event.target.name == ‘.‘) { //判断.前面是否还有.
                var flag=0;
                for(var j=0;j<text.value.length;j++)
                {
                    if(text.value[j]==‘.‘)
                    flag++;
                }
                if(flag==0)
                text.value+=event.target.innerHTML;

            }
            if(event.target.name==‘±‘) //点击正负值的执行
            {
                text.value=-Number(text.value); //强制转化数字的相反数
            }
            if(event.target.name==‘√‘)  //开平方计算
            {
                text.value=Math.sqrt(text.value);
            }
            if(event.target.name==‘2‘) //平方计算
            {
                text.value=Math.pow(text.value,2);
            }
        }

}

function style(bt_value, i) { //样式设置
    bt_value.style.width = "115px";
    bt_value.style.height = "50px";
    bt_value.style.margin = "5px";
    bt_value.style.marginTop = "20px";
    bt_value.innerHTML = str[i];
    bt_value.style.fontSize = "18px";
    bt_value.style.color = "#FFFFFF";
    if(i == 3) bt_value.style.background = ‘#444444‘;
    if(i == 7 || i == 11 || i == 15 || i == 19) bt_value.style.background = "#886600";
    if(i == 2) bt_value.style.background = "#DDAA00 ";
}

下面是主页面

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title>网页计算器</title>

    </head>
    <link rel="stylesheet" type="text/css" href="css/style.css"/>
    <body>
        <div id="hd"><input type="text" id="text" disabled="disabled"/></div>
        <div id="by"></div>
    </body>
    <script type="text/javascript" src="js/counter.js"></script>
</html>

css

*{
    background-image:url(../img/234973-13011P9141165.jpg);
    margin: 0 auto;
}
#hd{
    height: 100px;
    width: 500px;
    margin-top: 50px;

}
#by{
    height: 450px;
    width: 500px;
}
#text{
    background: #FFFFFF;
    text-align: right;
    font-size: 70px;
    margin: 5px;
    width: 480px;
    height: 70px;
    white-space: nowrap;
}

运行截图

背景直接拖了一张图片

时间: 2024-10-11 09:20:35

js网页计算器(按键+点击)的相关文章

CSS+JS打造的黑白风格网页计算器

JavaScript版网页计算器,仿Vista风格,计算器中的按钮做的想当漂亮,由此也增加了对此计算器的专业好感.鼠标移在计算器上,有响应效果. <!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

js实现的不可点击加减乘数的计算器

<html> <head> <title>JS版计算器</title> <link rel="stylesheet" type="text/css" href=""> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <!--js代码可以放置在任意

Node.js 网页瘸腿爬虫初体验

延续上一篇,想把自己博客的文档标题利用Node.js的request全提取出来,于是有了下面的初哥爬虫,水平有限,这只爬虫目前还有点瘸腿,请看官你指正了. // 内置http模块,提供了http服务器和客户端功能 var http=require("http"); // 内置文件处理模块 var fs=require('fs'); // 创建一个将流数据写入文件的WriteStream对象 var outstream=fs.createWriteStream('./1.txt'); /

js网页中调用本地应用程序

<!DOCTYPE html> <html lang="zh-CN"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Test ActiveXObject</title> <script> function Run(command) { windo

VBS一键配置VOIP(其中包括VBS操作JS网页中的按钮事件--直接执行确认按钮中的脚本代码)

Dim ws,fso,IESet IE = WScript.createobject("InternetExplorer.Application")Set ws = WScript.CreateObject ("WSCript.shell")Set fso=CreateObject("scripting.filesystemobject") Const reboot="/content.cgi?form=M_SAV" IE.m

用js 写计算器

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"   http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html> <head> <meta http-equiv = "content-type" content="text/html;charset=utf-8"/> &

网页计算器 &amp;&amp; 简易网页时钟 &amp;&amp; 倒计时时钟

<!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-

phantomjs介绍-(js网页截屏、javascript网页解析渲染工具)

phantomjs介绍-(js网页截屏.javascript网页解析渲染工具) phantomjs 是一个基于js的webkit内核无头浏览器 也就是没有显示界面的浏览器,这样访问网页就省去了浏览器的界面绘制所消耗的系统资源,比较适合用于网络测试等应用 .利用这个工具,我们可以轻松的搭建一个接口用于获取我们想要的url的整页截屏. PhantomJS is a headless WebKit with JavaScript API. It has fast and native support

VBS操作JS网页元素实例

'=========================================================================='' VBScript Source File -- Created with SAPIEN Technologies PrimalScript 4.0'' NAME: '' AUTHOR: Microsoft , Microsoft' DATE : 2014/8/14'' COMMENT: ''==========================