HTML+CSS+JS简易计算器

HTML+CSS+JS简易计算器

index.html

html 复制代码
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>简易计算器</title>
    <link rel="stylesheet" href="index.css">
    <script src="index.js" defer></script>
</head>

<body>
    <div class="toggle"></div>
    <div class="calculator">
        <div class="button">
            <h2 id="result"></h2>
            <span id="clear">Clear</span>
            <span>/</span>
            <span>*</span>
            <span>7</span>
            <span>8</span>
            <span>9</span>
            <span>-</span>
            <span>4</span>
            <span>5</span>
            <span>6</span>
            <span id="plus">+</span>
            <span>1</span>
            <span>2</span>
            <span>3</span>
            <span>0</span>
            <span>00</span>
            <span>.</span>
            <span id="equal">=</span>
        </div>
    </div>

</body>

</html>

index.css

css 复制代码
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: consolas;
}

body {
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: #edf1f4;
}

.calculator {
    position: relative;
    margin-top: 50px ;
    width: 340px;
    padding: 20px;
    border-radius: 20px;
    box-shadow: 15px 15px 20px rgba(0, 0, 0, 0.1), -15px -15px 20px #fffb;
}

.calculator .button {
    position: relative;
    display: grid;
}

.calculator .button #result {
    padding: 0 20px;
    position: relative;
    left: 8px;
    grid-column: span 4;
    height: 100px;
    line-height: 100px;
    border-radius: 10px;
    text-align: end;
    font-size: 2em;
    color: rgb(11, 155, 107);
    overflow: hidden;
    font-weight: 500;
    width: calc(100% - 16px);
    user-select: none;
    box-shadow: inset 5px 5px 10px rgba(0, 0, 0, 0.1),
        inset -5px -5px 20px #fff;
}

.calculator .button span {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 10px;
    border-radius: 10px;
    margin: 10px;
    min-width: 40px;
    font-size: 1.2em;
    border: 2px solid #e2ecf3;
    box-shadow: 5px 5px 10px #a7cbe5, -5px -5px 10px #e9ecef;
    cursor: pointer;
    user-select: none;
}

.calculator .button span:active {
    color: #739fea;
    box-shadow: inset 5px 5px 10px #a7cbe5, inset -5px -5px 10px #e9ecef;
}

.calculator .button span#clear {
    grid-column: span 2;
    background-color: #f44336;
    border: 2px solid #cfe4f4;
    color: #fff;
}

.calculator .button span#plus {
    grid-row: span 2;
    background-color: #31a935;
    border: 2px solid #cfe4f4;
    color: #fff;
}

.calculator .button span#equal {
    background: #2196f3;
    border: 2px solid #cfe4f4;
    color: #fff;
}

.calculator .buttons span#clear:active,
.calculator .buttons span#plus:active,
.calculator .buttons span#equal:active {
    box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.1),
        -5px -5px 10px #fff,
        inset 5px 5px 10px rgba(0, 0, 0, 0.1);
}

.toggle {
    position: fixed;
    top: 20px;
    right: 20px;
    background-color: #4b494c;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    cursor: pointer;
    border: 2px solid #edf1f4;
    box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.1),
        -5px -5px 10px #fff;
}

.dark .toggle {
    background: #edf1f4;
    border: 2px solid #333;
    box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.5),
        -5px -5px 10px rgba(255, 255, 255, 0.25);
}
.dark 
{
  background: #282c2f;
}
.dark .calculator
{
  background: #33393e;
  box-shadow: 15px 15px 20px rgba(0,0,0,0.25),
  -15px -15px 20px rgba(255,255,255,0.1);
}
.dark .calculator #value 
{
  color: #eee;
  box-shadow: inset 5px 5px 10px rgba(0,0,0,0.5),
  inset -5px -5px 20px rgba(255,255,255,0.1);
}
.dark .calculator .buttons span 
{
  color: #eee;
  border: 2px solid #333;
  box-shadow: 5px 5px 10px rgba(0,0,0,0.25),
  -5px -5px 10px rgba(255,255,255,0.1);
}
.dark .calculator .buttons span:active 
{
  box-shadow: inset 5px 5px 10px rgba(0,0,0,0.25),
  inset -5px -5px 10px rgba(255,255,255,0.1);
}
.dark .calculator .buttons span#clear,
.dark .calculator .buttons span#plus,
.dark .calculator .buttons span#equal
{
  border: 2px solid #333;;
}
.dark .calculator .buttons span#clear:active,
.dark .calculator .buttons span#plus:active,
.dark .calculator .buttons span#equal:active
{
  box-shadow: inset 5px 5px 10px rgba(0,0,0,0.1);
} 

idnex.js

js 复制代码
const button = document.querySelector('.button');
const btn = button.querySelectorAll('span');
const result = document.getElementById('result');
const toggle = document.querySelector('.toggle');
const body = document.querySelector('body');

for (let i = 0; i < btn.length; i++) {
  btn[i].addEventListener("click", function () {
    if (this.innerHTML == "=") {
      result.innerHTML = eval(result.innerHTML);
    } else {
     if (this.innerHTML == 'Clear') {
        result.innerHTML = " ";
      }else{
        result.innerHTML += this.innerHTML
      }
    }
  })
}
toggle.onclick = function(){
  body.classList.toggle('dark')
}

运行结果

相关推荐
不如吃茶去1 小时前
一文搞懂React Hooks闭包问题
前端·javascript·react.js
tomla1 小时前
使用clip-path polygon()画一个多边形
css
来之梦1 小时前
uniapp中 uni.previewImage用法
前端·javascript·uni-app
野猪佩奇0072 小时前
uni-app使用ucharts地图,自定义Tooltip鼠标悬浮显示内容并且根据@getIndex点击事件获取点击的地区下标和地区名
前端·javascript·vue.js·uni-app·echarts·ucharts
生活、追梦者2 小时前
html+css+JavaScript 实现两个输入框的反转动画
javascript·css·html
tjsoft2 小时前
试用笔记之-汇通窗口颜色显示软件(颜色值可供Delphi编程用)
html·delphi·窗口·颜色·源代码·汇通软件·文本框
星辰中的维纳斯3 小时前
vue新手入门教程(项目创建+组件导入+VueRouter)
前端·javascript·vue.js
ksuper&3 小时前
ts和js的关系
javascript
嫣嫣细语3 小时前
css实现鼠标禁用(鼠标滑过显示红色禁止符号)
前端·css
NaRciCiSSuS3 小时前
第一章-JavaScript简介
开发语言·javascript·ecmascript