HTML 写一个计算器

html 复制代码
<!DOCTYPE html>
<html>
<head>
    <meta charset=utf-8/>
    <title>Calculator</title>
    <style id="jsbin-css">
        div, span {
            margin: 0;
            padding: 0;
            font-weight: bold;
            font: bold 16px Arial, sans-serif;
            /*禁止选中文本*/
            -moz-user-select: none;
            -webkit-user-select: none;
            -o-user-select: none;
            user-select: none;
        }

        body {
            background: radial-gradient(circle, #fff, #aaa);
            background: -webkit-radial-gradient(circle, #fff, #aaa);
            background: -o-radial-gradient(circle, #fff, #aaa);
            background: -moz-radial-gradient(circle, #fff, #aaa);
            background-size: cover;
        }

        #calculator {
            width: 325px;
            height: auto;
            margin: 100px auto;
            padding: 20px;
            background: linear-gradient(#9dd2ea, #8bceec);
            background: -o-linear-gradient(#9dd2ea, #8bceec);
            background: -webkit-linear-gradient(#9dd2ea, #8bceec);
            background: -moz-linear-gradient(#9dd2ea, #8bceec);
            border-radius: 5px;
            box-shadow: 0 7px 8px #0000ff
        }

        .keys, .head {
            overflow: hidden;
        }

        .keys span, .clear {
            float: left;
            width: 66px;
            height: 40px;
            margin: 0 5px 10px 8px;
            text-align: center;
            line-height: 40px;
            border-radius: 3px;
            background: #eee;
            box-shadow: 0 5px 1px #999;
            cursor: pointer;
            transition: all 0.3s ease;
        }

        .keys span:hover {
            background: #87cefa;
            box-shadow: 0 5px 1px #1e90ff;
            color: #fff;
        }

        .keys .sign {
            background: #fffacd;
        }

        .clear {
            float: left;
            background: #ffb6c1;
            box-shadow: 0 5px 1px #ff86c1;
        }

        .clear:hover {
            background: #ff96a1;
            box-shadow: 0 5px 1px #ff4691;
            color: #fff;
        }

        .show {
            width: 213px;
            height: 40px;
            float: right;
            margin: 0 16px 5px 0;
            border-radius: 3px;
            background: #999;
            font-size: 20px;
            line-height: 40px;
            text-align: right;
            padding-right: 10px;
            box-shadow: inset 0 4px 5px #333;
        }
    </style>
</head>
<body>
<div id="calculator">
    <div class="head">
        <span class="clear">c</span>
        <div class="show"></div>
    </div>
    <div class="keys">
        <span>7</span>
        <span>8</span>
        <span>9</span>
        <span class="sign">+</span>
        <span>4</span>
        <span>5</span>
        <span>6</span>
        <span class="sign">-</span>
        <span>1</span>
        <span>2</span>
        <span>3</span>
        <span class="sign">*</span>
        <span>0</span>
        <span>.</span>
        <span>=</span>
        <span class="sign">/</span>
    </div>
</div>
<script>
    window.onload = function () {
        var oShow = getByClass("calculator", "show")[0];
        var aNum = document.getElementById("calculator").getElementsByTagName("span");
        for (var i = 0, iLen = aNum.length; i < iLen; i++) {
            aNum[i].onclick = function () {
                var oShowVal = oShow.innerHTML;
                var oNumVal = this.innerHTML;
                var num1, num2 = null;
                num1 = oShowVal;
                //判断按键
                if (oNumVal == "c") {
                    oShow.innerHTML = "";
                }
                else if (oNumVal == "=") {
                    var oResult = eval(oShowVal);
                    console.log(oResult);
                    oShow.innerHTML = oResult==undefined?'0':oResult;
                }
                else {
                    oShow.innerHTML += oNumVal;
                }
            }
        }
    };
    function getByClass(root, sClass) {
        var obj = document.getElementById(root);
        var arr = [];
        var aItems = obj.getElementsByTagName("*");
        for (var i = 0; i < aItems.length; i++) {
            if (aItems[i].className == sClass) {
                arr.push(aItems[i]);
            }
        }
        return arr;
    }
</script>
</body>
</html>
相关推荐
m0_547486667 小时前
《HTML+CSS+JavaScript+Vue前端开发技术教程》全套PPT课件
javascript·css·html
gCode Teacher 格码致知8 小时前
Javascript技术:CSS 中rem、vh 和 px各有其最佳适用场景-由Deepseek产生
开发语言·javascript·css
fastjson_9 小时前
Edge浏览器开启IE兼容模式
javascript·edge·html
qq_4198540511 小时前
css filter
前端·javascript·css
艾伦野鸽ggg13 小时前
web 组大一下第二次考核
前端·css·html
川石课堂软件测试13 小时前
APP自动化测试|高级手势操作&toast操作
css·功能测试·测试工具·microsoft·fiddler·单元测试·harmonyos
用户0595401744615 小时前
Playwright 网络拦截踩坑实录:我花了 3 小时才搞懂数据持久化验证的正确姿势
前端·css
货拉拉技术15 小时前
Huolala Figma MCP 原理与实践
人工智能·前端框架·html
TA远方1 天前
【HTML】JavaScript Canvas 图像截取与保存完整指南
前端·javascript·html·canvas·截图·截取
feixing_fx1 天前
选择器的威力——深入理解优先级计算与层叠规则
开发语言·前端·css·前端框架·html