【sgRectSelect】Vue实现拖拽鼠标圈选、划区域、框选组件:矩形区域选中checkbox,并回调相关选中、取消选中的操作

这篇具有很好参考价值的文章主要介绍了【sgRectSelect】Vue实现拖拽鼠标圈选、划区域、框选组件:矩形区域选中checkbox,并回调相关选中、取消选中的操作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

vue实现框选,Vue.js,JavaScript&TypeScript,vue.js,javascript,前端

边框线虚线动画效果请参阅边框虚线滚动动画特效_虚线滚动效果_你挚爱的强哥的博客-CSDN博客【代码】边框虚线滚动动画特效。_虚线滚动效果https://blog.csdn.net/qq_37860634/article/details/130507289 

vue实现框选,Vue.js,JavaScript&TypeScript,vue.js,javascript,前端

碰撞检测原理请前往 原生JS完成“一对一、一对多”矩形DIV碰撞检测、碰撞检查,通过计算接触面积(重叠覆盖面积)大小来判断接触对象DOM_js 碰撞检测_你挚爱的强哥的博客-CSDN博客这里就需要去遍历所有的target,计算每个重叠面积大小,挑出面积最大的那一个。stackArea=0代表没有重叠;stackArea >0代表有交集。为了方便计算比较,我们通常是在上面的代码基础上加一个面积大小判断,_js 碰撞检测https://blog.csdn.net/qq_37860634/article/details/121688431

还可以用此组件实现类似资源管理器的圈选效果

vue实现框选,Vue.js,JavaScript&TypeScript,vue.js,javascript,前端vue实现框选,Vue.js,JavaScript&TypeScript,vue.js,javascript,前端 文章来源地址https://www.toymoban.com/news/detail-567271.html


sgRectSelect框选组件源码  

<template>
    <div :class="$options.name" v-if="startPoint && endPoint" :style="style"
        :borderAnimate="borderAnimate === '' || borderAnimate">
        <slot></slot>
    </div>
</template>
  
<script>
import $g from "@/js/sg";
export default {
    name: 'sgRectSelect',
    data() {
        return {
            targets: [],//圈选目标数组
            startPoint: null,
            endPoint: null,
            style: {
                width: '0px',
                height: '0px',
                top: '0px',
                left: '0px',
            },
            oldSelectedDoms: [],//记录上一次圈选内容用于对比 
            disabled_: false,
            triggerRectElement_: null,
            rangeRectElement_: null,
            minDragDis_: null,
        }
    },
    props: [
        "data",//(必选)建议用一个复杂对象,方便后续识别操作
        /* data是一个数组格式:
        [
            {
                dom:文档对象,//必选
                index:'索引',
                id:'元素的id',
                refName:'ref别名',
                selectEvent:'选中后的操作',
                unSelectEvent:'取消选中后的操作',
            } ,
        ...
        ]
        也可以是一维数组,只包含将可能被选中的DOM数组
  

到了这里,关于【sgRectSelect】Vue实现拖拽鼠标圈选、划区域、框选组件:矩形区域选中checkbox,并回调相关选中、取消选中的操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 相机可见区域,使用鼠标拖拽模型

    向量 射线检测 坐标转换 使用 射线检测 获取射线检测点与模型对象之间的偏移量 (世界空间) 使用 相机的坐标转换 获取检测点与鼠标位置之间的偏移量 (屏幕空间) 拖拽时,更新模型位置

    2024年02月14日
    浏览(43)
  • vue项目实现鼠标拖拽功能

    当鼠标按下鼠标移动的时候,记录移动中的 x、y 值,那么这个被拖拽的 dom 的 top 和 left 值就是: top=鼠标按下时记录的 dom 的 top 值+(移动中的 y 值 - 鼠标按下时的 y 值) left=鼠标按下时记录的 dom 的 left 值+(移动中的 x 值 - 鼠标按下时的 x 值)  

    2024年02月11日
    浏览(46)
  • vue实现简单的鼠标拖拽横向滚动和 鼠标滚轮横向滚动

    第一种,按住鼠标拖拽滚动 以下代码项目中直接使用即可,此种方法是通过鼠标拖拽进行滚动,滑动滚轮无效果。 当然快捷键,shift+鼠标滚轮可以控制横向滚动,对用户来说体验不友好。 css代码 第二种方法是通过鼠标的滚轮进行滚动 css代码

    2024年02月11日
    浏览(47)
  • vue实现鼠标拖拽div左右移动的功能

    直接代码: 这部分区域可以鼠标拖拽左右滚动

    2024年02月03日
    浏览(55)
  • vue实现 图片拖拽及鼠标滚轮放大缩小

    效果: 代码实现

    2024年02月14日
    浏览(83)
  • vue+echart实现3d地图可拖拽、缩放、区域填充颜色(geo3D)

    功能背景 一个略微比2d地图炫酷一些的3d地图, 1、可对区域进行不同颜色填充。 2、可拖拽缩放地图 3、鼠标悬停高亮某区域。 (注意:当开启了鼠标悬停series,并高亮某个数据的时候,会导致地图的拖拽缩放出现卡顿,因为相当于是事件重叠了。。。目前还没想到好的解决方

    2024年02月13日
    浏览(48)
  • osg实现鼠标框选

    目录 1. 需求的提出 2. 具体实现      2.1. 禁止场景跟随鼠标转动      2.2. 矩形框前置绘制 3. 附加说明         3.1. 颜色设置说明         3.2.矩形框显示和隐藏的另一种实现        有时需要在屏幕通过按住键盘上的某个键如Ctrl键且按住鼠标左键,拖出一个矩形,实现框选

    2024年02月08日
    浏览(43)
  • Vue 实现拖拽模块(一)拖拽添加组件

    本文主要介绍了vue拖拽组件实现构建页面的简单实现,文中通过示例代码介绍,感兴趣的小伙伴们可以了解一下 本文主要介绍了 Vue拖拽添加组件的简单实现,具体如下: 效果图 使用 H5 的新特性拖放操作来实现,拖拽左侧的组件放到右边主体部分,然后主体部分识别拖拽组

    2024年02月10日
    浏览(33)
  • Vue 实现拖拽模块(二)自定义拖拽组件位置

    上文介绍了 拖拽添加组件 的简单实现,本文将继续给大家分享如何自定义拖拽组件位置的简单实现,文中通过示例代码介绍,感兴趣的小伙伴们可以了解一下 本文主要介绍了 Vue自定义拖拽组件位置的简单实现,具体如下: 效果图 给画布中的拖拽元素绑定 onmousedown 事件并把

    2024年02月02日
    浏览(44)
  • vue中实现el-table点选和鼠标框选功能

      实现思路: 项目有两个需求,既能在el-table实现点选又能实现鼠标框选 一. 点选实现思路: 使用el-table的cellClick方法,         1.直接给点击的cell添加类名,cell.classList.add(\\\"blue-cell\\\");然后把获取的数据存入数组,            设置样式:      方法2.如果不添加类名,可以在ce

    2024年02月16日
    浏览(66)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包