讲师中心 微信公众号
AI工具推荐 视频效率加速

如何通过按钮点击动态显示并计算不同图形区域内容

落涛小哥_4630

落涛小哥_4630

发布时间:2026-01-06 14:36:09

|

768人浏览过

|

来源于php中文网

原创

如何通过按钮点击动态显示并计算不同图形区域内容

本文介绍如何使用原生 javascript 和 css 类切换机制,实现点击多个按钮分别显示对应图形表单,并为每种图形提供独立的面积计算逻辑,避免冗余函数,提升代码可维护性。

在构建交互式表单时,常需根据用户选择动态展示不同内容模块(如“正方形”与“矩形”输入界面),并为其绑定专属计算逻辑。与其为每个按钮编写独立函数,更优雅的方式是:用 CSS 控制显隐 + 事件委托 + 精准 DOM 定位。

首先,为隐藏区域添加基础样式:

#square, #rectangle {
  display: none;
}
#square.shown, #rectangle.shown {
  display: block;
}

接着,使用现代 JavaScript 实现解耦逻辑——无需 onclick 内联属性,统一通过 addEventListener 绑定事件:

Html To Pdf
Html To Pdf

使用 Puppeteer + Chrome 将 HTML 渲染为中文 PDF,自动处理图表等待、Tab 展开、动画、测高、白边消除、防分页,适用于看板、报表、网页和交互图表转 PDF。

下载
// 工具函数:简化 querySelector 调用
const $ = (selector) => document.querySelector(selector);

// 按钮点击:切换对应区域可见性
$('#one1').addEventListener('click', () => $('#square').classList.toggle('shown'));
$('#one2').addEventListener('click', () => $('#rectangle').classList.toggle('shown'));

// 正方形计算:读取 #area 输入值,计算平方
$('#square button').addEventListener('click', () => {
  const side = parseFloat($('#square #area').value) || 0;
  if (isNaN(side) || side <= 0) {
    alert('请输入有效的正方形边长');
    return;
  }
  alert(`正方形面积为:${side ** 2}`);
});

// 矩形计算:读取 length 和 width,相乘得面积
$('#rectangle button').addEventListener('click', () => {
  const len = parseFloat($('#rectangle #len').value) || 0;
  const width = parseFloat($('#rectangle #width').value) || 0;
  if (isNaN(len) || isNaN(width) || len <= 0 || width <= 0) {
    alert('请输入有效的长和宽');
    return;
  }
  alert(`矩形面积为:${len * width}`);
});

⚠️ 注意事项:

  • 原 HTML 中两个 <input> 共用 id="area",违反 ID 唯一性规范,已修正为 #len / #width;
  • 使用 parseFloat() 并配合 || 0 和 isNaN() 校验,防止空值或非法输入导致计算错误;
  • 所有事件监听均基于当前可见区域内的按钮,天然隔离逻辑,无需全局函数名(如 aarea()),避免命名冲突与维护困难;
  • 若后续扩展更多图形(如圆形、三角形),只需新增 HTML 结构、CSS 规则及对应事件监听,主逻辑无需修改。

这种模式兼顾简洁性与可扩展性,是前端交互开发中推荐的轻量级实践方案。

热门AI工具

更多
蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

Loomy
Loomy Hot

一款AI工具,主要用于科大讯飞发布的桌面级 AI 助理,比 OpenClaw 更易用、更安全!,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

超级简历WonderCV

一款AI办公效率工具,主要用于免费求职简历模版下载制作,应届生职场人必备简历制作神器,适合需要提升相关任务效率的用户。

立刻MV
立刻MV Hot

立刻MV是一款AI文本写作工具,AI 音乐视频(MV)创作工具。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

AionClaw
AionClaw Hot

AionClaw是一款面向办公、创作和编程任务的AI桌面智能体。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

火山引擎

火山引擎是一款面向企业的云计算与AI服务平台。

相关专题

更多
DOM是什么意思
DOM是什么意思

dom的英文全称是documentobjectmodel,表示文件对象模型,是w3c组织推荐的处理可扩展置标语言的标准编程接口;dom是html文档的内存中对象表示,它提供了使用javascript与网页交互的方式。想了解更多的相关内容,可以阅读本专题下面的文章。

6461

2024.08.14

点击input框没有光标怎么办
点击input框没有光标怎么办

点击input框没有光标的解决办法:1、确认输入框焦点;2、清除浏览器缓存;3、更新浏览器;4、使用JavaScript;5、检查硬件设备;6、检查输入框属性;7、调试JavaScript代码;8、检查页面其他元素;9、考虑浏览器兼容性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

674

2023.11.24

Buffalo框架数据库开发全教程
Buffalo框架数据库开发全教程

本专题围绕Buffalo框架数据库开发,讲解database.yml多环境配置、soda与fizz迁移生成回滚、模型结构体标签、增删改查与条件查询、一对多与多对多关联、数据校验、回调钩子、事务处理及原生SQL执行能力。

40

2026.09.23

Buffalo框架路由与请求处理实操指南
Buffalo框架路由与请求处理实操指南

本专题讲解Buffalo框架路由与请求处理机制,涵盖路由注册与分组、资源路由、Handler编写规范、Context上下文方法、参数绑定、中间件编写挂载、Session与Cookie读写、Flash消息及错误页面定制方法。

20

2026.09.23

Buffalo框架零基础入门教程
Buffalo框架零基础入门教程

本专题整理Buffalo框架入门内容,涵盖Go环境准备、buffalo CLI安装、新项目生成、目录结构说明、dev热加载启动、数据库连接配置与常见报错排查,帮助新手按约定优于配置的思路跑通第一个Buffalo框架应用。

20

2026.09.23

Conan创建软件包配方指南
Conan创建软件包配方指南

本专题介绍通过conanfile.py创建软件包的方法,讲解包名、版本、依赖和构建设置等基础信息,以及source、build、package、package_info等常用方法的作用及编写思路。

20

2026.09.22

Conan二进制包配置指南
Conan二进制包配置指南

本专题介绍Conan根据操作系统、编译器、架构和构建类型生成二进制包的方法,讲解Profile、Settings、Options及Package ID的作用,帮助管理不同平台和编译环境下的包版本。

20

2026.09.22

Conan私有仓库搭建教程
Conan私有仓库搭建教程

本专题系统的讲解Conan私有仓库的搭建流程,涵盖仓库服务部署、存储目录配置、用户认证、权限划分和远程地址添加,并介绍内部C++依赖包的上传、下载及版本维护方法。

20

2026.09.22

loomy官网入口地址合集
loomy官网入口地址合集

本专题汇总了 Loomy 桌面 AI 助理的官方入口地址合集及使用指南。提供 macOS 与 Windows 客户端下载 。Loomy 是讯飞推出的桌面级 AI 工作搭子,支持文件整理、数据分析、网页操作及通过飞书/钉钉远程操控电脑,助你高效完成本地办公任务 。

20

2026.09.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Sass 教程
Sass 教程

共14课时 | 1.5万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 5.6万人学习

CSS教程
CSS教程

共754课时 | 94万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn