使用js写一个鼠标框选的效果

news/2024/12/26 10:03:28/文章来源:https://www.cnblogs.com/ai888/p/18632048

鼠标框选效果通常指的是用户在页面上拖动鼠标时,可以框选一个区域,并高亮显示这个区域。以下是一个简单的示例,使用原生JavaScript来实现这个效果:

  1. HTML
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>鼠标框选效果</title><style>#selection-box {position: absolute;border: 1px dashed #000;background-color: rgba(0, 255, 0, 0.1);display: none;pointer-events: none;z-index: 9999;}</style>
</head>
<body><div id="content"><!-- 这里是页面的主要内容 --><p>请在此区域内拖动鼠标进行框选</p></div><div id="selection-box"></div><script src="script.js"></script>
</body>
</html>
  1. JavaScript (script.js 文件):
document.addEventListener('DOMContentLoaded', function() {let startX, startY, endX, endY, isDragging = false;const selectionBox = document.getElementById('selection-box');const content = document.getElementById('content');function updateSelectionBox() {if (!isDragging) return;selectionBox.style.left = Math.min(startX, endX) + 'px';selectionBox.style.top = Math.min(startY, endY) + 'px';selectionBox.style.width = Math.abs(endX - startX) + 'px';selectionBox.style.height = Math.abs(endY - startY) + 'px';selectionBox.style.display = 'block';}content.addEventListener('mousedown', function(e) {startX = e.pageX - content.offsetLeft;startY = e.pageY - content.offsetTop;isDragging = true;selectionBox.style.display = 'block';});content.addEventListener('mousemove', function(e) {if (!isDragging) return;endX = e.pageX - content.offsetLeft;endY = e.pageY - content.offsetTop;updateSelectionBox();});content.addEventListener('mouseup', function() {isDragging = false;// 你可以在这里添加处理框选完成后的逻辑,例如获取框选的元素等。// 例如:console.log('框选完成', startX, startY, endX, endY);// 隐藏选择框,如果需要的话也可以不隐藏,以便查看框选区域。selectionBox.style.display = 'none';});
});

这个示例中,当用户在 #content 区域内拖动鼠标时,会显示一个选择框,框的大小会随着鼠标的移动而动态变化。当用户释放鼠标时,框选完成,并且可以在此处添加处理框选完成后的逻辑。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/859189.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AI基坑监测识别摄像机

AI基坑监测识别摄像机是一种利用人工智能技术进行基坑监测的智能设备,其作用是监测基坑工程施工过程中的变化,并识别潜在的风险因素,以提供准确数据和及时预警,确保基坑工程的安全进行。这种摄像机通过高清摄像头实时捕捉基坑工程的图像,然后利用AI算法对基坑的土体稳定性…

波士顿矩阵:如何制定产品战略与组合优化?

引言 在当今竞争激烈的市场环境中,企业面临着众多产品的管理与决策难题。如何合理分配资源,确定哪些产品值得加大投入,哪些产品需要逐步淘汰,是企业实现可持续发展的关键。波士顿矩阵作为一种经典的产品战略分析工具,为企业提供了一个清晰的框架,帮助管理者洞察产品的市场…

电动车违停智能监测摄像机

电动车违停智能监测摄像机可以通过合理设置监控区域和参数,实现对电动车违停情况的自动监测和报警。一旦系统检测到电动车违停情况,比如车辆停放时间过长或占用人行道等,会立即发送警报通知相关部门,以便及时处理并维护交通秩序。电动车违停智能监测摄像机可以广泛应用于城…

Flutter进阶组件(2):CheckboxListTile(复选框列表项)

CheckboxListTile是一个特殊的ListTile,它内嵌了一个复选框(Checkbox)。这使得它非常适合用来创建一个带有标题和可选复选框的列表项,常用于设置界面或需要用户选择多个选项的场景。 一、属性 CheckboxListTile组件提供了以下属性,以支持各种自定义需求:title: 显示的标题…

3种常见的数据库迁移工具对比

3种常见的数据库迁移工具对比神州数码云基地​已认证账号​关注2 人赞同了该文章之前在项目中,收到一个紧急需求,要把数据从 PostgreSQL 迁移到 TiDB 中。由于时间紧任务重,来不及调研高效的方式,直接使用了 Navicat 内置的功能,把数据从 PostgreSQL 迁移到了 TiDB。 项…

img标签的onerror事件有什么作用?

onerror 是 HTML <img> 标签的一个事件属性,它用于指定当图像加载出现错误时执行的 JavaScript 代码。如果指定的图像文件不存在、无法访问,或者由于某种原因无法正确加载到页面上,就会触发这个事件。 例如,你可以使用 onerror 事件来提供一个备用的图像,以便在原图…

java基础3

异常 Java 异常类层次结构图概览:Exception 和 Error 有什么区别? 在 Java 中,所有的异常都有一个共同的祖先 java.lang 包中的 Throwable 类。Throwable 类有两个重要的子类:Exception :程序本身可以处理的异常,可以通过 catch 来进行捕获。Exception 又可以分为 Checked …

12-26 工作笔记

1. 从已有的PCB制作封装库得到下面的内容,代表成功了。

业务系统文件安全上传 如何做到安全合规?

业务系统文件安全上传的业务场景,主要是指金融、医疗、能源、政府机构等,内部各类业务系统(例如:OA、供应商管理系统、客户管理系统、客服系统、风控系统等)面向大量终端用户提供服务时,往往需要终端用户上传各类文件附件。 这种业务场景面临的主要挑战包括: 1、安全威…

Byrutor,俄罗斯最大游戏破解资源站|中文

Byrutor是一个源自俄罗斯的游戏下载网站,提供大量最新和经典的游戏资源,几乎涵盖了Steam等主流平台的内容。用户可以通过搜索或浏览找到自己喜欢的游戏,并通过BT种子下载游戏资源。该平台支持多种语言,包括俄语和英语,并且每天更新内容,确保用户能够获取最新的游戏资源。…

销冠秘籍:人脉拓展

在人生的旅途中,人脉往往扮演着至关重要的角色。如果你的朋友众多,人际关系广泛,善于建立和维护关系,那么业务的拓展自然会水到渠成。然而,现实生活中的人脉构建并非易事,它需要我们用心去经营,去维护。 自我价值:人脉的基石 初入职场时,我曾被老板告诫:年轻人不要过…

未发现数据源名称并且未指定默认驱动程序

如果遇到类似“未发现数据源名称并且未指定默认驱动程序”的错误提示,通常是因为系统找不到指定的ODBC驱动程序。此时建议检查以下几个方面:确认驱动程序已正确安装:通过控制面板中的“管理工具” -> “ODBC数据源”查看是否列出了所需的MySQL ODBC驱动程序。 验证驱动程…