获取页面矩形区域内的 DOM 元素

2024-04-09

给定网页上的两个点和一组 DOM 元素,如何找出位于这两个点定义的矩形区域内的 DOM 元素的子集?

我正在开发一个基于网络的画廊,其中每张照片都包含在li标签。当用户用鼠标拖出一个矩形区域时,所有li矩形内的元素被标记为已选择。

更喜欢 jQuery 解决方案,因为它是一种简洁且高效的方法。


尝试这样的事情:

// x1, y1 would be mouse coordinates onmousedown
// x2, y2 would be mouse coordinates onmouseup
// all coordinates are considered relative to the document
function rectangleSelect(selector, x1, y1, x2, y2) {
    var elements = [];
    jQuery(selector).each(function() {
        var $this = jQuery(this);
        var offset = $this.offset();
        var x = offset.left;
        var y = offset.top;
        var w = $this.width();
        var h = $this.height();

        if (x >= x1 
            && y >= y1 
            && x + w <= x2 
            && y + h <= y2) {
            // this element fits inside the selection rectangle
            elements.push($this.get(0));
        }
    });
    return elements;
}

// Simple test
// Mark all li elements red if they are children of ul#list
// and if they fall inside the rectangle with coordinates: 
// x1=0, y1=0, x2=200, y2=200
var elements = rectangleSelect("ul#list li", 0, 0, 200, 200);
var itm = elements.length;
while(itm--) {
    elements[itm].style.color = 'red';
    console.log(elements[itm]);
}

对于普通的 JS 解决方案,请查看这支笔:https://codepen.io/ArtBIT/pen/KOdvjM https://codepen.io/ArtBIT/pen/KOdvjM

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

获取页面矩形区域内的 DOM 元素 的相关文章

  • jQuery如何让Enter(Return)通过输入文本字段充当Tab键但最终触发提交按钮

    我已经屏蔽了 Enter 返回 键 实际上 将其转换为 Tab 键 因此 当在输入文本字段内按下时 它充当 Tab 键 这很好 但我需要它在最后一个字段中按下时触发提交按钮 下面是 Enter 键突变的代码 input keydown fu
  • jQuery .val() 返回单选按钮的未定义

    我正在尝试获取 jQuery 中选中的单选按钮值 但它返回的值是 未定义 我搜索了这个问题的解决方案 但对我来说没有任何作用 我的 HTML 代码
  • 如何在 d3 js 中突出显示从根到选定节点的路径?

    我使用 d3 js 创建了一棵树 现在我创建了一个下拉菜单 其中包含树中所有节点的列表 现在 从下拉菜单中选择一个节点时 我想突出显示从根到该特定节点的路径 这个怎么做 首先创建一个 flatten 函数 它将分层数据变成一个 n 数组 f
  • Ember.JS - 如何在同一页面中使用多个模型、控制器和视图?

    我主要了解 Ember JS 的基础知识 大多数示例实际上只处理单个控制器和模型以在页面上显示某些内容 我真的很想用 Ember 构建一个完整的 Web 应用程序 所以有人能告诉我如何组织和连接多个控制器 模型和视图到一个页面中吗 例如 如
  • JavaScript 动画平滑滚动

    默认情况下 当您有这样的片段链接时 a href some url some fragment some text a 浏览器立即向下滚动到该片段 我该如何编程才能使用标准 JS 顺利地向下移动到该片段 这是一个例子 Example htt
  • HTML colorpicker 发生变化时如何获取新值?

    我正在开发一个需要更改 HTML 颜色的网络应用程序canvas基于的价值观colorpicker 我有一个colorpicker在我需要获取的 HTML 中value从每次更新开始
  • 访问 TypeScript 数组的最后一个元素

    TypeScript 中有访问数组最后一个元素的符号吗 在 Ruby 中我可以说 array 1 有类似的东西吗 您可以通过索引访问数组元素 数组中最后一个元素的索引将是数组的长度 1 因为索引是从零开始的 这应该有效 var items
  • 使水平滚动条始终可见,即使底部不在视图中

    我将用一个片段来开始这个问题 该片段几乎显示了我想要完成的任务 wrapper overflow hidden display flex sidebar min width 200px background 333 color FFF co
  • 如何将 Browserify 与外部依赖项一起使用?

    我正在尝试慢慢地将 Browserify 引入我的网站 但我不想重写所有 js 也不希望 jquery 和其他库的重复实例与我的 Browserify 版本捆绑在一起 如果我构建将 jquery 列为外部依赖项的模块 那么如何将其指向我的全
  • jQuery 选择下一个

    我有一个简单的div布局html 有一个函数 当鼠标悬停在className为 personal icon email 的div上时 我将调用JS函数并显示className为 img info mask 的隐藏div div class
  • 根据用户输入使用 Jquery 显示/隐藏字段

    li class numeric optional li
  • jquery:当我在文档上附加一层时,如何重置文档滚动条?

    当我在文档上附加图层时 如何重置文档滚动条 例如 它就像 Facebook 页面 当您有一个很长的文档时 您需要向下滚动才能查看较旧的图像 帖子 当你点击照片时 滚动条发生了变化 从顶部开始 但文档页面根本不跳转 当关闭照片查看器图层时 滚
  • 如何使 jQuery 向上动画

    我有一些 jquery 运行得相当好 但是当我将鼠标悬停在有问题的元素上时 底部向下扩展 这并不意外 但不是所需的效果 我希望元素的底部保持静止 而元素的顶部向上扩展 如果您想查看我目前拥有的内容 您可以导航至http demo ivann
  • 如何在网页上实现文件上传进度条?

    当用户将文件上传到我的网络应用程序时 我想显示比动画 gif 更有意义的内容 我还有哪些可能性 编辑 我正在使用 Net 但我不介意是否有人向我展示与平台无关的版本 如果您对这一切在客户端通常如何工作感兴趣 就是这样 所有解决方案都通过 J
  • 如何在 e2e AngularJS 测试中进行文件上传?

    在我的一种观点中 我有一个文件上传控件 它支持通过拖放或单击按钮后打开的标准文件对话框上传文件 How to do this in my e2e tests1 1 Just one of the two options will be en
  • 加载另一个 JS 脚本后加载

    这是我的代码 very big js file lots of html stuff 问题是 这些是异步加载的 有没有办法等待第二个脚本直到第一个脚本加载 如果您使用 jQuery 有一个非常简单的方法可以通过获取脚本 https api
  • 替换两个引号之间的字符串

    我想转动一根绳子str hello my name is michael what s your s into hello my name is span class name michael span 我怎样才能在 JavaScript
  • 如何在 SVG 元素上使用箭头标记?

    我需要在 d3 js 中创建一个箭头 但我找到的只是带有节点图的示例 我需要的是简单地制作一个从 A 点到 B 点的箭头 我尝试实现以下示例中的部分代码 http bl ocks org 1153292 http bl ocks org 1
  • Bootstrap 3 / 显示模式不适用于 javascript 方式

    我用Modal http getbootstrap com javascript modalsBootstrap 3 0 的功能 我有这个代码 a href myNestedContent Open the modal containing
  • 如何调试 Gulp 任务?

    如何调试我的中定义的 gulp 任务gulpfile js使用诸如 Google Chrome 调试器之类的调试器逐行单步执行任务的代码 对于 Node js 6 3 版本 您可以使用 inspect flag https nodejs o

随机推荐

  • javascript 按子列表第二个条目对列表列表进行排序

    如何按最后一个元素的顺序对列表列表进行排序 这是迄今为止我最好的尝试 var mylist 1 c 3 a 5 b mylist sort function a b return a 1 b 1 我打电话给sort没有效果 并且mylist
  • CATextLayer 包裹了 sizeToFit?

    如果我设置textLayer wrapped YES 如何调整大小textLayer包含换行文本 即 我如何获得新的高度textLayer 基本上 我想要类似的东西 UILabel sizeToFit 您需要做的第一件事是获取文本的大小 值
  • 如何使用 Python/Glade 更改主窗口小部件?

    我对 GUI 编程或多或少是个新手 只是有一点点 Perl Tk 经验 我是 Python 新手 也是 Glade 新手 我想学习如何使用它们 我心中有一个程序 需要一个窗口 但该窗口的内容 小部件和所有内容 必须随着用户完成的每一步而改变
  • Model() 获得参数“nr_class”的多个值 - SpaCy 多分类模型(BERT 集成)

    您好 我正在致力于使用新的 SpaCy 模型实现多分类模型 5 类 en pytt bertbaseuncased lg 新管道的代码在这里 nlp spacy load en pytt bertbaseuncased lg textcat
  • Android Google Play 意图引荐来源网址

    我像这样启动 Google Play Intent intent new Intent Intent ACTION VIEW Uri parse market details id com example intent addFlags I
  • CSS 选择器的优先级是什么

    CSS 问题 如果两个不同的选择器应用于一个元素 谁会获胜 我知道这不应该发生 但我想调整遗留应用程序 而 CSS 却处于中间位置 The 血淋淋的细节 http www w3 org TR CSS21 cascade html casca
  • 在计算其他汇总统计数据的同时使用 n()

    我在使用以下方法准备汇总表时遇到问题dplyr基于以下数据集 set seed 1 df lt data frame rep sample c 2012 2016 10 replace T sample c Treat Control 10
  • 在本机反应中出现“无法读取 null 的属性‘pickAlgorithm’”错误

    我在运行时遇到错误npm install 错误是 npm ERR Cannot read property pickAlgorithm of null npm ERR A complete log of this run can be fo
  • 运行 nginx 的 django 服务器上的大型媒体文件出现 403 错误

    我正在使用 Nginx 和 Gunicorn 运行托管在 DigitalOcean 上的 Django 服务器 当我遇到 403 错误时 我尝试通过管理界面添加 2MB 图片 调查error log指示权限被拒绝 如下 2017 06 27
  • 在 Manjaro 上安装 MongoDB

    我在 Manjaro Linux 上安装 MongoDB 社区服务器时遇到困难 没有关于如何在基于 Arch 的系统上安装它的官方文档 并且 Pacman 在 AUR 存储库中找不到它 有人尝试过安装它吗 这是我安装时所做的 由于包装是无法
  • 如何仅使用位移位和逻辑操作将 unsigned int 加 1?

    我的作业 项目中有一个问题 仅使用以下方法将 1 添加到无符号整数位移位 and 逻辑运算符 函数中不应有任何 或 符号 我从前几天开始就在尝试 但还没有成功 到目前为止 我已经尝试过以下操作 int A B C lt lt 1 B C 有
  • 关闭 DataInputStream 也会关闭 FileInputStream 吗?

    FileInputStream fstream new FileInputStream someFile getPath DataInputStream in new DataInputStream fstream 如果我打电话in clo
  • Erlang TCP 套接字关闭

    为了学习 Erlang 我正在尝试实现一个基于gen tcp 不幸的是 我的代码似乎触发了一些有线行为 为了演示这个问题 我附上了我的实现的最小化版本 它足以重现该问题 无论 HTTP 请求是什么 它都只是传递静态 200 OK 当我尝试运
  • 使用 Java 以编程方式下载 CSV 文件

    场景 我用来研究股票数据的网站的页面上有一个 将数据导出到电子表格 的链接 将鼠标悬停在导出链接上时显示的 URL 的形式为http www stocksite com historical export php symbol C http
  • `std::sin` 最后一点是错误的

    为了提高效率 我正在将一些程序从 Matlab 移植到 C 两个程序的输出完全相同非常重要 我面临着此操作的不同结果 std sin 0 497418836818383950 0 477158760259608410 C sin 0 497
  • Spring aop拦截来自同一服务类的调用

    我有一个与中提到的相同的场景 Spring Transaction方法通过同一个类内的方法调用 不起作用 https stackoverflow com questions 3423972 spring transaction method
  • Turbolinks 加载事件在页面加载时不起作用

    我对当前默认 Turbolinks 推荐的加载事件有疑问 document addEventListener turbolinks load function 发生的情况是 当页面加载时 这不会在 Safari 上触发 因此我附加了Turb
  • I18nManager.forceRTL 不会在首次应用程序加载中应用更改

    我有一个由 Awesome 创建的应用程序React native我的布局设计为 RTL 模式 我已经设置了一个强制布局为 RTL 的选项 但我的选项在安装后的第一次应用程序加载中不起作用 此功能适用于第二次运行 我在我们的index js
  • 嵌套查询过滤器_Django

    我保持简单 我有 3 个型号 class C models model some field models BooleanField default False class B models model b models ForeignKe
  • 获取页面矩形区域内的 DOM 元素

    给定网页上的两个点和一组 DOM 元素 如何找出位于这两个点定义的矩形区域内的 DOM 元素的子集 我正在开发一个基于网络的画廊 其中每张照片都包含在li标签 当用户用鼠标拖出一个矩形区域时 所有li矩形内的元素被标记为已选择 更喜欢 jQ