当前位置: 首页 > news >正文

angular简易计算器

说明:
用angular实现计算器效果,ui风格为暗黑
效果图:
在这里插入图片描述

step1: C:\Users\Administrator\WebstormProjects\untitled4\src\app\calnum\calnum.component.ts

import { Component } from '@angular/core';@Component({selector: 'app-calnum',imports: [],templateUrl: './calnum.component.html',styleUrl: './calnum.component.css'
})
export class CalnumComponent {mainDisplay = '0';subDisplay = '';currentValue = '';operator = '';firstOperand: number | null = null;handleInput(value: string): void {if (value === '.' && this.currentValue.includes('.')) return;this.currentValue = this.currentValue === '0' ? value : this.currentValue + value;this.mainDisplay = this.currentValue;}setOperator(op: string): void {if (this.currentValue === '') return;this.operator = op;this.firstOperand = parseFloat(this.currentValue);this.subDisplay = `${this.currentValue} ${op}`;this.currentValue = '';}calculate(): void {if (!this.firstOperand || !this.operator) return;const secondOperand = parseFloat(this.currentValue);let result: number;switch (this.operator) {case '+':result = this.firstOperand + secondOperand;break;case '-':result = this.firstOperand - secondOperand;break;case '×':result = this.firstOperand * secondOperand;break;case '÷':result = this.firstOperand / secondOperand;break;default:return;}this.mainDisplay = result.toString();this.subDisplay = `${this.firstOperand} ${this.operator} ${secondOperand} =`;this.currentValue = result.toString();this.firstOperand = null;this.operator = '';}clear(): void {this.mainDisplay = '0';this.subDisplay = '';this.currentValue = '';this.firstOperand = null;this.operator = '';}}

step2: C:\Users\Administrator\WebstormProjects\untitled4\src\app\calnum\calnum.component.html

<div class="calculator"><div class="display"><div class="sub-display">{{ subDisplay }}</div><div class="main-display">{{ mainDisplay }}</div></div><div class="buttons"><button (click)="clear()">AC</button><button (click)="handleInput('7')">7</button><button (click)="handleInput('8')">8</button><button (click)="handleInput('9')">9</button><button class="operator" (click)="setOperator('÷')">÷</button><button (click)="handleInput('4')">4</button><button (click)="handleInput('5')">5</button><button (click)="handleInput('6')">6</button><button class="operator" (click)="setOperator('×')">×</button><button (click)="handleInput('1')">1</button><button (click)="handleInput('2')">2</button><button (click)="handleInput('3')">3</button><button class="operator" (click)="setOperator('-')">-</button><button (click)="handleInput('0')">0</button><button (click)="handleInput('.')">.</button><button (click)="calculate()">=</button><button class="operator" (click)="setOperator('+')">+</button></div>
</div>

step3: C:\Users\Administrator\WebstormProjects\untitled4\src\app\calnum\calnum.component.css

/* calculator.component.css */
.calculator {background: #1a1a1a;border-radius: 16px;padding: 24px;width: 320px;box-shadow: 0 8px 24px rgba(0, 0, 0, 0.3);border: 1px solid #333;margin: 20px auto;
}.display {background: #000;border-radius: 12px;padding: 20px;margin-bottom: 20px;text-align: right;border: 1px solid #333;
}.sub-display {color: #666;font-size: 14px;min-height: 20px;margin-bottom: 8px;font-family: 'Courier New', monospace;
}.main-display {color: #fff;font-size: 36px;font-weight: 300;letter-spacing: -1px;font-family: 'Segoe UI', sans-serif;
}.buttons {display: grid;grid-template-columns: repeat(4, 1fr);gap: 8px;
}button {border: none;border-radius: 8px;padding: 18px;font-size: 20px;cursor: pointer;transition: all 0.15s ease;background: #2d2d2d;color: #fff;font-weight: 500;
}button:hover {background: #3d3d3d;transform: translateY(-1px);
}button:active {transform: translateY(1px);
}button.operator {background: #ff9500;color: #fff;
}button.operator:hover {background: #ffaa33;
}button:nth-child(1) { /* AC 按钮 */background: #ff3b30;color: #fff;
}button:nth-child(1):hover {background: #ff453a;
}button:nth-child(19) { /* = 按钮 */background: #34c759;color: #fff;grid-column: span 2;
}button:nth-child(19):hover {background: #30d158;
}/* 数字按钮特殊效果 */
button:not(.operator):not(:first-child):not(:last-child) {background: #262626;
}/* 按钮文字阴影 */
button {text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
}/* 输入动画 */
button {transition:background 0.2s ease,transform 0.1s cubic-bezier(0.4, 0, 0.2, 1),box-shadow 0.2s ease;
}/* 键盘聚焦效果 */
button:focus-visible {outline: 2px solid #007AFF;outline-offset: 2px;
}/* 显示区域渐变效果 */
.display {background: linear-gradient(145deg, #0a0a0a, #000);
}/* 操作符按钮激活状态 */
button.operator.active {background: #ffaa33;box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.2);
}

end

相关文章:

angular简易计算器

说明&#xff1a; 用angular实现计算器效果&#xff0c;ui风格为暗黑 效果图&#xff1a; step1: C:\Users\Administrator\WebstormProjects\untitled4\src\app\calnum\calnum.component.ts import { Component } from angular/core;Component({selector: app-calnum,import…...

谈谈 ES 6.8 到 7.10 的功能变迁(3)- 查询方法篇

上一篇咱们了解了 ES 7.10 相较于 ES 6.8 新增的字段类型&#xff0c;这一篇我们继续了解新增的查询方法。 Interval 间隔查询&#xff1a; 功能介绍 Interval 查询&#xff0c;词项间距查询&#xff0c;可以根据匹配词项的顺序、间距和接近度对文档进行排名。主要解决的查询…...

16、Python面试题解析:python中的浅拷贝和深拷贝

在 Python 中&#xff0c;浅拷贝&#xff08;Shallow Copy&#xff09; 和 深拷贝&#xff08;Deep Copy&#xff09; 是处理对象复制的两种重要机制&#xff0c;它们的区别主要体现在对嵌套对象的处理方式上。以下是详细解析&#xff1a; 1. 浅拷贝&#xff08;Shallow Copy&a…...

游戏引擎学习第119天

仓库:https://gitee.com/mrxiao_com/2d_game_3 上一集回顾和今天的议程 如果你们还记得昨天的进展&#xff0c;我们刚刚完成了优化工作&#xff0c;目标是让某个程序能够尽可能快速地运行。我觉得现在可以说它已经快速运行了。虽然可能还没有达到最快的速度&#xff0c;但我们…...

爬虫解析库:Beautiful Soup的详细使用

文章目录 1. 安装 Beautiful Soup2. 基本用法3. 选择元素4. 提取数据5. 遍历元素6. 修改元素7. 搜索元素8. 结合 requests 使用9. 示例&#xff1a;抓取并解析网页10. 注意事项 Beautiful Soup 是一个用于解析 HTML 和 XML 文档的 Python 库&#xff0c;它提供了简单易用的 API…...

OpenHarmony-4.基于dayu800 GPIO 实践(2)

基于dayu800 GPIO 进行开发 1.DAYU800开发板硬件接口 LicheePi 4A 板载 2x10pin 插针&#xff0c;其中有 16 个原生 IO&#xff0c;包括 6 个普通 IO&#xff0c;3 对串口&#xff0c;一个 SPI。TH1520 SOC 具有4个GPIO bank&#xff0c;每个bank最大有32个IO&#xff1a;  …...

【C++设计模式】观察者模式(1/2):从基础到优化实现

1. 引言 在 C 软件与设计系列课程中&#xff0c;观察者模式是一个重要的设计模式。本系列课程旨在深入探讨该模式的实现与优化。在之前的课程里&#xff0c;我们已对观察者模式有了初步认识&#xff0c;本次将在前两次课程的基础上&#xff0c;进一步深入研究&#xff0c;着重…...

《机器学习数学基础》补充资料:欧几里得空间的推广

在《机器学习数学基础》第 1 章介绍了向量空间&#xff0c;并且说明了机器学习问题通常是在欧几里得空间。然而&#xff0c;随着机器学习技术的发展&#xff0c;特别是 AI 技术开始应用于科学研究中&#xff0c;必然会涉及到其他类型的空间。本文即在《机器学习数学基础》一书所…...

在配置PX4中出现的问题2

想要原教程的请看&#xff1a;第一次配置中出现的问题 前面一切正常&#xff08;gazebo导入models那一步在刚刚解压好的文件夹里就删不掉stereo_camera等文件&#xff0c;ls打开也看不到&#xff0c;应该时我下的包里面本来就没有&#xff09;&#xff0c;到 make px4_sitl_def…...

2025-2-24-4.9 单调栈与单调队列(基础题)

文章目录 4.9 单调栈与单调队列&#xff08;基础题&#xff09;单调栈739. 每日温度42. 接雨水单调队列239. 滑动窗口最大值 4.9 单调栈与单调队列&#xff08;基础题&#xff09; 很有趣的两个数据结构。 原视频讲解链接 单调栈 739. 每日温度 题目链接 给定一个整数数组 te…...

python绘图之swarmplot分布散点图

swarmplot 是 Seaborn 提供的一种用于展示分类数据分布的散点图。它的主要作用是将数据点按照分类变量&#xff08;通常是离散变量&#xff09;进行分组&#xff0c;并在每个分类中以一种非重叠的方式展示数据点的位置。这种可视化方式可以帮助我们直观地理解数据在不同分类下的…...

数据库之MySQL——事务(一)

1、MySQL之事务的四大特性(ACID)&#xff1f; 原子性(atomicity)&#xff1a;一个事务必须视为一个不可分割的最小工作单元&#xff0c;整个事务中的所有操作要么全部提交成功&#xff0c;要么全部失败回滚&#xff0c;对于一个事务来说&#xff0c;不可能只执行其中的一部分操…...

Linux学习笔记之文件

1.文件 1.1文件属性 当我们创建文件时&#xff0c;文件就有了对应的属性&#xff0c;可以用mkdir创建目录&#xff0c;touch创建普通文件。用ls -al查看文件属性。 从上图可以看出目录或者文件的所有者&#xff0c;所属组&#xff0c;其他人权限&#xff0c;创建时间等信息。由…...

LLM学习

1、基础概念篇 大模型训练三部曲Pretraining SFT RLHF...

Classic Control Theory | 13 Complex Poles or Zeros (第13课笔记-中文版)

笔记链接&#xff1a;https://m.tb.cn/h.TtdexbP?tkeFAlejKBSzQhttps://m.tb.cn/h.TtdexbP?tkeFAlejKBSzQ...

给小米/红米手机root(工具基本为官方工具)——KernelSU篇

目录 前言准备工作下载刷机包xiaomirom下载刷机包【适用于MIUI和hyperOS】“hyper更新”微信小程序【只适用于hyperOS】 下载KernelSU刷机所需程序和驱动文件 开始刷机设置手机第一种刷机方式【KMI】推荐提取boot或init_boot分区 第二种刷机方式【GKI】不推荐 结语 前言 刷机需…...

【MySQL】表的增删查改(CRUD)(上)

个人主页&#xff1a;♡喜欢做梦 欢迎 &#x1f44d;点赞 ➕关注 ❤️收藏 &#x1f4ac;评论 CRUD&#xff1a;Create&#xff08;新增数据&#xff09;、Retrieve&#xff08;查询数据&#xff09;、Update&#xff08;修改数据&#xff09;、Delete&#xff08;修改数据…...

测试用例的Story是什么?

测试用例的 Story&#xff08;用户故事&#xff09;是指描述某个功能或场景的具体用户需求&#xff0c;它通常以简短的业务背景用户操作期望结果的方式呈现&#xff0c;使测试人员能够理解测试的目标和价值。用户故事能够帮助团队更好地设计测试用例&#xff0c;确保功能满足用…...

15.4 FAISS 向量数据库实战:构建毫秒级响应的智能销售问答系统

FAISS 向量数据库实战:构建毫秒级响应的智能销售问答系统 关键词:FAISS 向量数据库、销售知识库构建、相似度检索优化、大规模问答匹配、量化索引技术 1. 销售问答场景的向量化挑战与解决方案 1.1 传统检索方案痛点分析 #mermaid-svg-AeVgih79asJb7lb8 {font-family:"…...

Golang笔记——Interface类型

大家好&#xff0c;这里是&#xff0c;关注 公主号&#xff1a;Goodnote&#xff0c;专栏文章私信限时Free。本文详细介绍Golang的interface数据结构类型&#xff0c;包括基本实现和使用等。 文章目录 Go 语言中的 interface 详解接口定义实现接口空接口 interface{} 示例&…...

实战避坑:在TensorFlow/PyTorch里高效实现Depthwise Separable Conv,别再让模型训练慢如蜗牛

深度可分离卷积实战指南&#xff1a;如何在TensorFlow/PyTorch中实现高效计算 当你在移动端或边缘设备上部署轻量级模型时&#xff0c;Depthwise Separable Convolution&#xff08;深度可分离卷积&#xff09;无疑是减少计算量和参数量的利器。但很多工程师在实际应用中会发现…...

SSD异常掉电后,你的数据真的丢了吗?聊聊FTL映射表恢复的‘快照’魔法

SSD异常掉电后&#xff0c;你的数据真的丢了吗&#xff1f;聊聊FTL映射表恢复的‘快照’魔法 电脑突然蓝屏、插座意外断电、笔记本电池耗尽...这些突如其来的"断电惊魂"时刻&#xff0c;总让人心头一紧&#xff1a;刚刚没保存的文件是不是彻底消失了&#xff1f;SSD号…...

Chaplin:基于唇语识别的实时无声语音输入实战指南

Chaplin&#xff1a;基于唇语识别的实时无声语音输入实战指南 【免费下载链接】chaplin A real-time silent speech recognition tool. 项目地址: https://gitcode.com/gh_mirrors/chapl/chaplin 在嘈杂的会议室中无法进行语音输入&#xff1f;在图书馆需要安静地记录想…...

Windows 11经典游戏兼容性终极指南:5分钟快速修复方案

Windows 11经典游戏兼容性终极指南&#xff1a;5分钟快速修复方案 【免费下载链接】dxwrapper Fixes compatibility issues with older games running on Windows 10/11 by wrapping DirectX dlls. Also allows loading custom libraries with the file extension .asi into ga…...

3步完成VRChat模型优化:Cats Blender插件完全指南

3步完成VRChat模型优化&#xff1a;Cats Blender插件完全指南 【免费下载链接】cats-blender-plugin :smiley_cat: A tool designed to shorten steps needed to import and optimize models into VRChat. Compatible models are: MMD, XNALara, Mixamo, DAZ/Poser, Blender Ri…...

3个步骤让你在电脑上畅玩Switch游戏:Ryujinx模拟器完全指南

3个步骤让你在电脑上畅玩Switch游戏&#xff1a;Ryujinx模拟器完全指南 【免费下载链接】Ryujinx 用 C# 编写的实验性 Nintendo Switch 模拟器 项目地址: https://gitcode.com/GitHub_Trending/ry/Ryujinx 你是否曾经想过&#xff0c;如果能在自己的电脑上体验《塞尔达传…...

intv_ai_mk11开源模型部署:支持国产化环境的Llama中文适配版

intv_ai_mk11开源模型部署&#xff1a;支持国产化环境的Llama中文适配版 1. 模型概述 intv_ai_mk11是基于Llama架构开发的中文文本生成模型&#xff0c;专为国产化环境优化设计。这个中等规模的模型特别适合处理通用问答、文本改写、解释说明和简短创作等任务。 与原始Llama…...

ANSYS分析问题:发现至少一个几何体在至少2个方向上只有1个单元,并且集成度降低。这种情况可能导致结果无效或是求解器主元错误。

&#x1f393;作者简介&#xff1a;科技自媒体优质创作者 &#x1f310;个人主页&#xff1a;莱歌数字-CSDN博客 &#x1f48c;公众号&#xff1a;莱歌数字&#xff08;B站同名&#xff09; &#x1f4f1;个人微信&#xff1a;yanshanYH 211、985硕士&#xff0c;从业16年 从…...

从Java全栈到前端框架:一位工程师的面试实录

从Java全栈到前端框架&#xff1a;一位工程师的面试实录 今天&#xff0c;我作为一位拥有5年经验的Java全栈开发工程师&#xff0c;迎来了在一家知名互联网大厂的面试。这次面试由一位资深技术面试官主持&#xff0c;他以专业严谨的态度引导我逐步展示自己的技能和项目经验。 …...

Windows 11 LTSC微软商店安装终极指南:3步恢复完整应用生态

Windows 11 LTSC微软商店安装终极指南&#xff1a;3步恢复完整应用生态 【免费下载链接】LTSC-Add-MicrosoftStore Add Windows Store to Windows 11 24H2 LTSC 项目地址: https://gitcode.com/gh_mirrors/ltscad/LTSC-Add-MicrosoftStore 你是否在使用Windows 11 LTSC系…...