如何实现基于Fixed定位的框选功能?

2026-04-09 16:410阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1423个文字,预计阅读时间需要6分钟。

如何实现基于Fixed定位的框选功能?

最近项目涉及到一个支持批量操作的小需求,交互上需要使用框架来提升开发效率。查阅资料后发现,网上的方案基本都基于绝对定位布局,而本项目若针对全局(在body上)则需采用不同方案。

最近项目涉及到一个支持批量操作的小需求,交互上需要使用框选来触发。在查阅了一些资料后发现,网上的方案基本都是基于绝对定位布局的,此方案如果是针对全局(在body上)的框选,还是可用的。但是现实需求里几乎都是针对某个区域的框选。如果用绝对定位实现就比较繁琐了,需要调整定位原点。下面介绍一种基于Fixed定位的框选实现。

需求描述

  • 按住鼠标左键不放,移动鼠标出现选择框
  • 在鼠标移动的过程中,在框选范围内的元素高亮
  • 松开鼠标左键,弹出编辑框,批量操作所有被框选的元素

实现

事件绑定

首先梳理一下需要用到的事件。

按住鼠标左键,因为并没有原生的鼠标左键按下事件,所以使用mousedown事件配合setTimeout模拟实现。mousedown事件绑定在当前区域上。

阅读全文

本文共计1423个文字,预计阅读时间需要6分钟。

如何实现基于Fixed定位的框选功能?

最近项目涉及到一个支持批量操作的小需求,交互上需要使用框架来提升开发效率。查阅资料后发现,网上的方案基本都基于绝对定位布局,而本项目若针对全局(在body上)则需采用不同方案。

最近项目涉及到一个支持批量操作的小需求,交互上需要使用框选来触发。在查阅了一些资料后发现,网上的方案基本都是基于绝对定位布局的,此方案如果是针对全局(在body上)的框选,还是可用的。但是现实需求里几乎都是针对某个区域的框选。如果用绝对定位实现就比较繁琐了,需要调整定位原点。下面介绍一种基于Fixed定位的框选实现。

需求描述

  • 按住鼠标左键不放,移动鼠标出现选择框
  • 在鼠标移动的过程中,在框选范围内的元素高亮
  • 松开鼠标左键,弹出编辑框,批量操作所有被框选的元素

实现

事件绑定

首先梳理一下需要用到的事件。

按住鼠标左键,因为并没有原生的鼠标左键按下事件,所以使用mousedown事件配合setTimeout模拟实现。mousedown事件绑定在当前区域上。

阅读全文