js css 实现简易计算器_html/css_WEB-ITnose
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>JS+CSS3实现计算器特效</title><link type="text/css" rel="stylesheet" href="css/datouwang.css"><div id="calculator"> <!-- Screen and clear key --> <div class="top"> <span class="clear">C</span> <div class="screen"></div> </div> <div class="keys"> <!-- operators and other keys --> <span>7</span> <span>8</span> <span>9</span> <span class="operator">+</span> <span>4</span> <span>5</span> <span>6</span> <span class="operator">-</span> <span>1</span> <span>2</span> <span>3</span> <span class="operator">÷</span> <span>0</span> <span>.</span> <span class="eval">=</span> <span class="operator">x</span> </div> </div><script src="js/datouwang.js" type="text/javascript"></script>
// Get all the keys from documentvar keys = document.querySelectorAll('#calculator span');var operators = ['+', '-', 'x', '÷'];var decimalAdded = false;// Add onclick event to all the keys and perform operationsfor(var i = 0; i -1 || lastChar == '.') equation = equation.replace(/.$/, ''); if(equation) input.innerHTML = eval(equation); decimalAdded = false; } // Basic functionality of the calculator is complete. But there are some problems like // 1. No two operators should be added consecutively. // 2. The equation shouldn't start from an operator except minus // 3. not more than 1 decimal should be there in a number // We'll fix these issues using some simple checks // indexOf works only in IE9+ else if(operators.indexOf(btnVal) > -1) { // Operator is clicked // Get the last character from the equation var lastChar = inputVal[inputVal.length - 1]; // Only add operator if input is not empty and there is no operator at the last if(inputVal != '' && operators.indexOf(lastChar) == -1) input.innerHTML += btnVal; // Allow minus if the string is empty else if(inputVal == '' && btnVal == '-') input.innerHTML += btnVal; // Replace the last operator (if exists) with the newly pressed operator if(operators.indexOf(lastChar) > -1 && inputVal.length > 1) { // Here, '.' matches any character while $ denotes the end of string, so anything (will be an operator in this case) at the end of string will get replaced by new operator input.innerHTML = inputVal.replace(/.$/, btnVal); } decimalAdded =false; } // Now only the decimal problem is left. We can solve it easily using a flag 'decimalAdded' which we'll set once the decimal is added and prevent more decimals to be added once it's set. It will be reset when an operator, eval or clear key is pressed. else if(btnVal == '.') { if(!decimalAdded) { input.innerHTML += btnVal; decimalAdded = true; } } // if any other key is pressed, just append it else { input.innerHTML += btnVal; } // prevent page jumps e.preventDefault(); } }
/* Basic reset */* { margin: 0; padding: 0; box-sizing: border-box; /* Better text styling */ font: bold 14px Arial, sans-serif;}/* Finally adding some IE9 fallbacks for gradients to finish things up *//* A nice BG gradient */html { height: 100%; background: white; background: radial-gradient(circle, #fff 20%, #ccc); background-size: cover;}/* Using box shadows to create 3D effects */#calculator { width: 325px; height: auto; margin: 100px auto; padding: 20px 20px 9px; background: #9dd2ea; background: linear-gradient(#9dd2ea, #8bceec); border-radius: 3px; box-shadow: 0px 4px #009de4, 0px 10px 15px rgba(0, 0, 0, 0.2);}/* Top portion */.top span.clear { float: left;}/* Inset shadow on the screen to create chinaz */.top .screen { height: 40px; width: 212px; float: right; padding: 0 10px; background: rgba(0, 0, 0, 0.2); border-radius: 3px; box-shadow: inset 0px 4px rgba(0, 0, 0, 0.2); /* Typography */ font-size: 17px; line-height: 40px; color: white; text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.2); text-align: right; letter-spacing: 1px;}/* Clear floats */.keys, .top {overflow: hidden;}/* Applying same to the keys */.keys span, .top span.clear { float: left; position: relative; top: 0; cursor: pointer; width: 66px; height: 36px; background: white; border-radius: 3px; box-shadow: 0px 4px rgba(0, 0, 0, 0.2); margin: 0 7px 11px 0; color: #888; line-height: 36px; text-align: center; /* prevent selection of text inside keys */ user-select: none; /* Smoothing out hover and active states using css3 transitions */ transition: all 0.2s ease;}/* Remove right margins from operator keys *//* style different type of keys (operators/evaluate/clear) differently */.keys span.operator { background: #FFF0F5; margin-right: 0;}.keys span.eval { background: #f1ff92; box-shadow: 0px 4px #9da853; color: #888e5f;}.top span.clear { background: #ff9fa8; box-shadow: 0px 4px #ff7c87; color: white;}/* Some hover effects */.keys span:hover { background: #9c89f6; box-shadow: 0px 4px #6b54d3; color: white;}.keys span.eval:hover { background: #abb850; box-shadow: 0px 4px #717a33; color: #ffffff;}.top span.clear:hover { background: #f68991; box-shadow: 0px 4px #d3545d; color: white;}/* Simulating "pressed" effect on active state of the keys by removing the box-shadow and moving the keys down a bit */.keys span:active { box-shadow: 0px 0px #6b54d3; top: 4px;}.keys span.eval:active { box-shadow: 0px 0px #717a33; top: 4px;}.top span.clear:active { top: 4px; box-shadow: 0px 0px #d3545d;}

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

使用 HTML5 或 CSS 创建进度条:创建进度条容器。设置进度条宽度。创建进度条内部元素。设置进度条内部元素宽度。使用 JavaScript、CSS 或进度条库显示进度。

在 HTML 中,通过 CSS 设置 H5 表格边框:引入 CSS 样式表,使用 border 属性(包括 border-width、border-style 和 border-color 子属性)设置边框样式,并应用样式到表格元素。此外,还可以设置特定的边框样式,如 border-top、border-right、border-bottom 和 border-left。

制作 H5 点击图标的步骤包括:在图像编辑软件中准备方形源图像。在 H5 编辑器中添加交互性,设置点击事件。创建覆盖整个图标的热点。设置点击事件的操作,如跳转页面或触发动画。导出 H5 文档为 HTML、CSS 和 JavaScript 文件。将导出的文件部署到网站或其他平台。

运行 H5 项目需要以下步骤:安装 Web 服务器、Node.js、开发工具等必要工具。搭建开发环境,创建项目文件夹、初始化项目、编写代码。启动开发服务器,使用命令行运行命令。在浏览器中预览项目,输入开发服务器 URL。发布项目,优化代码、部署项目、设置 Web 服务器配置。

H5 弹窗制作步骤:1. 确定触发方式(点击式、时间式、退出式、滚动式);2. 设计内容(标题、正文、行动按钮);3. 设置样式(大小、颜色、字体、背景);4. 实现代码(HTML、CSS、JavaScript);5. 测试和部署。

解决 H5 兼容问题的方法包括:使用响应式设计,允许网页根据屏幕尺寸调整布局。采用跨浏览器测试工具,在发布前测试兼容性。使用 Polyfill,为旧浏览器提供对新 API 的支持。遵循 Web 标准,使用有效的代码和最佳实践。使用 CSS 预处理器,简化 CSS 代码并提高可读性。优化图像,减小网页大小并加快加载速度。启用 HTTPS,确保网站的安全性。

制作 H5 下拉菜单包括以下步骤:创建下拉列表、应用 CSS 样式、添加切换效果和处理用户选择。具体步骤如下:使用 HTML 创建下拉列表。使用 CSS 调整下拉菜单的外观。使用 JavaScript 或 CSS 实现切换效果。监听 change 事件以处理用户选择。

制作H5进度条有两种方法:使用HTML进度条元素和使用JavaScript创建进度条。HTML进度条元素方法涉及创建进度条元素并设置其最大值和当前值,而JavaScript方法则包括创建进度条容器和一个更新进度条的函数。
