如何在vue中用鼠标选择项目时滚动

2023-12-04

您好,我在选择项目时面临着非常具有挑战性和有趣的滚动问题mouse向两个方向拖动 i,e上和下

这是一个屏幕截图

enter image description here

这是我的代码 : https://codesandbox.io/s/select-ivwq8j?file=/src/overridden/Drag-select.vue

Drag-select.vue是写入拖动选择逻辑的文件。

哪个火change当文件选择发生更改时。

我在这里收到那些更改事件<drag-select-container @change="dragSelect($event)">

Edit 1:IVO GELO 评论后

我已经在里面添加了drag()功能

   try{
      let containerEl = document.querySelector('#wrapping_container');
      let container = containerEl.getBoundingClientRect();
      if(box.top > (container.top )){
          containerEl.scrollTop = box.top - 50;
          return true;
      }
    }catch(e){
      console.log(e);
    } 

在这里编辑代码: https://codesandbox.io/s/select-ivwq8j?file=/src/overridden/Drag-select.vue

这是一个非常有趣且具有挑战性的问题,所以

请帮助我提前谢谢!


我建议你使用DragSelectjs 库。

工作演示

https://codesandbox.io/s/select-forked-tnmnwk?file=/src/components/HelloWorld.vue

mounted() {
  const vm = this;

  const ds = new DragSelect({
    selectables: document.querySelectorAll(".selectable-nodes"),
    area: document.getElementById("area"),
    draggability: false,
  });

  ds.subscribe("elementselect", function ({ item }) {
    vm.selectedItems.push();
  });

  ds.subscribe("elementunselect", function ({ item }) {
    const index = vm.selectedItems.indexOf(item.getAttribute("customAttribute"));
    if (index > -1) {
      vm.selectedItems.splice(index, 1);
    }
  });
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在vue中用鼠标选择项目时滚动 的相关文章

  • 是否有匹配单个字素簇的正则表达式?

    字素是用户感知的文本字符 在 unicode 中可能由多个代码点组成 From Unicode 标准附录 29 http unicode org reports tr29 Grapheme Cluster Boundaries 重要的是要认
  • 如何通过 JS 中的 WebPack 包提供全局 TypeScript 类

    我目前正在研究 TypeScript 我想用 TS 替换 JS 但是我有很多 JS 文件 所以我只想在 TS 中创建新类 并想在我的旧 JS 文件 atm 中使用这些类 后来我想把所有的JS都换成TS 我对 webpack 和捆绑的 js
  • 差异:查看页面源代码与在 Firebug 中查看

    当我查看页面的页面源时 例如 http my sa ucsb edu public curriculum coursesearch aspx http my sa ucsb edu public curriculum coursesearc
  • 创建链接到 csv 文件的表

    我正在尝试创建一个链接到的表 csv使用 d3 文件 但我得到的只是一个空白网页 即使以克里米亚为例 我也得到一张空白页 我将很高兴得到指导或展示一个可行的例子或关于我做错了什么的建议 如果您询问如何从 CSV 数据创建 HTML 表 这就
  • 如何检查 webgl(two.js) 的客户端性能

    我有一个使用 Three JS 的图形项目 现在我想自动检查客户端 GPU 性能并计算可以在应用程序中加载多少元素 我想到了诸如 GPU 基准测试之类的东西 看一眼stats js https github com mrdoob stats
  • 如何突出显示 html 文档中文本查询的搜索结果而忽略 html 标签?

    我有一个字符串 其中包含 html 内容 像这样的东西 const text My name is Alan and I span an span div class someClass artist div 我使用以下命令在反应组件中渲染
  • 在全局范围内查找 JavaScript 函数

    有没有办法在当前活动的对象模型中搜索 JavaScript 属性 例如命名函数 Firebug 在 DOM 选项卡上显示的内容 我在 Chrome 开发人员工具中找不到直接等效项 加载页面 使用主要浏览器的通用开发人员工具 一个例子是 我搜
  • Javascript 将即时生成的 BLOB 文件下载到特定文件夹中

    所以我正在尝试编写一个 Firefox Webextension 我想将网页的标题 网址和个人评论保存到文件中 myfile txt 这就是我得出的结论 我不希望我的 下载 文件夹很快变满 因此我想将它们下载到 下载 文件夹中包含的文件夹中
  • 从 Flow 中的对象值定义联合类型

    我有一个这样的枚举 const Filter ALL ALL COMPLETED COMPLETED UNCOMPLETED UNCOMPLETED 我想做的是声明一个联合类型 如下所示 type FilterType Filter ALL
  • HTML5 画布在缩放和旋转后平移

    我正在尝试用画布做一些事情 首先 我让用户上传图像 如果图像比我想要的大 我需要将其缩小 那部分工作得很好 最近我们遇到了 iPhone 用户上传图像的问题 这些都存在方向问题 我已经弄清楚如何提取方向 我的问题是当我操纵画布中的图像时会发
  • 正则表达式匹配除括号中的单词之外的所有单词 - javascript

    我使用以下正则表达式来匹配所有单词 mystr replace W s g function match p1 index title 请注意 单词可以包含特殊字符 例如德语变音符号 如何匹配除括号内的单词之外的所有单词 如果我有以下字符串
  • Node.js ES6如何从模块导出类? [复制]

    这个问题在这里已经有答案了 我正在尝试从 Node js 6 2 0 中的 CommonJS 模块导出 ES6 类 class MyClass class contents here exports MyClass 然后将其导入到另一个模块
  • 正则表达式问题 - 在字符串中查找数字

    我目前正在使用 JavaScript 从字段中获取字符串 在该字段中通常会有 宽度 56 空隙 67 我需要做的是识别 1 440 范围内的两个数字 并将它们放入两个不同的字段中 字段 1 宽度 字段 2 无效 我已经研究过正则表达式 到目
  • 如何调试使用 Testaulous (Karma) 运行的 Jasmine 规范?

    我有一个具有 Jasmine 规格的小项目 我使用 Testaulous 作为我的测试运行程序 我不明白如何调试应用程序代码或规范代码 当我尝试在 Chrome 开发工具中设置断点时 下次规范运行时不会命中它 因为它每次都会使用新的查询字符
  • 量角器检查元素是否不存在

    我在基于角度的网站中有一个设置可以打开和关闭下拉菜单 如果关闭 则不会显示在主页上 对于量角器 我需要检查开关关闭时该元素是否不存在 但是 我不应该陷入 未找到元素 错误 因为它是一组许多测试中的一个 我该怎么做 我曾尝试这样做 expec
  • firebase 返回 onSnapshot 承诺

    我正在使用 firebase firestore 并且正在寻找一种返回快照承诺的方法 onlineUsers i want to return onSnapshot return this status database ref where
  • 您可以编写期望抛出异常的异步测试吗?

    我正在编写一个异步测试 期望异步函数像这样抛出 it expects to have failed async gt let getBadResults async gt await failingAsyncTest expect awai
  • Javascript TypeError:无法读取未定义的属性“indexOf”

    在此代码中 我想从cart products array var cart products 17 1 19 1 18 1 var product 17 each cart products function key item if ite
  • 访问影子 DOM 中的元素

    是否有可能查找 Shadow DOM 中的元素与蟒蛇硒 示例用例 我有这个input with type date
  • ng-show 令人不安的 div 布局 - angularJS

    我在用ng show notesOpened 如果notesOpened 变量为true 则隐藏div 然而 当隐藏时 它会扰乱布局 有没有办法让 ng show 的行为与 css 属性相同visibility hidden 以便被隐藏的

随机推荐

  • 终止的线程恢复

    我将一堆线程对象存储在数组列表中 我希望能够随机启动这些线程 同一个线程可以启动多次 在启动线程对象之前 我检查线程是否处于活动状态 以及它们是否具有 NEW 或 TERMINATED 状态 这个限制是因为 我不想打扰 繁忙 的线程 现在
  • VirtualBox 中的 Neo4j 服务器:无法创建 rrd 存储

    我正在尝试运行我的 Virtualbox 中的 Neo4j 服务器正在运行 Ubuntu 这服务器文件和数据库位于我的 Windows 主机内并可访问通过共享文件夹 vboxsf 不幸的是 我无法轻松地将数据传输到虚拟机并直接在那里运行 由
  • Android异常:您是否忘记调用“public void setup(LocalActivityManager ActivityGroup)”

    MyCode public class MainActivity extends Activity Override protected void onCreate Bundle savedInstanceState super onCre
  • PHP 时间戳直到“几小时前”的麻烦

    我需要确定我们网站上发布的评论的 时间之前 时间戳 我的老板希望它只显示到几个小时 因此它应该显示 48 小时前 而不是 2 天前 或 480 小时而不是 20 天前 这是我找到的代码 但直到几个小时我才知道如何做到这一点 date def
  • 禁用应用程序的 Android O 自动填充服务

    Android O 有支持的功能自动填充对于字段 有什么方法可以针对特定应用程序禁用它 也就是说 我想强制我的应用程序不使用自动填充服务 是否可以 要阻止整个活动的自动填充 请在活动的 onCreate 中使用它 getWindow get
  • 自动完成时触发了任何事件吗?

    我有一个非常简单的表格 当用户在输入字段中键入内容时 我想更新他们在页面其他位置键入的内容 这一切都很好 我已将更新绑定到keyup change and click events 唯一的问题是 如果您从浏览器的自动完成框中选择输入 它不会
  • 从触发器调用包含动态 SQL 的存储过程

    我从触发器调用存储过程并收到以下错误 存储函数或触发器中不允许使用动态 SQL 为什么会发生这种情况 动态SQL是在存储过程中执行的 这是从触发器调用的 也许这就是问题所在 如果是的话有什么解决办法吗 编辑 添加代码 这是主表中的触发器 T
  • 如何在Excel VBA中根据行和列ID查找单元格值

    需要 VBA Sub 来根据行和列 ID 查找单元格值 在下面的示例中 我需要选择 East 和 RT3 相交处的值 即 80 A B C D E 1 null RT1 RT2 RT3 RT4 2 North 31 40 78 11 3 S
  • 在后台运行 cgi shell 脚本

    我有一个像这样的cgi shell脚本 bin sh show the page echo Content type text html echo echo b Hello world b the task I want to do in
  • 如何以像素增量滚动 DataGridView

    我最初的方法是将 DataGridView 包含在面板内 将其高度设置在面板边界之外 然后更改控制面板的滚动条位置 然而 我刚刚发现我的 DataGridView 内的行数将达到 2000 这迫使我将 DataGridView 的大小至少设
  • 在后台进程后运行代码 - parse.com

    我的 viewController 中有一个 findObjectsInBackgroundWithBlock 方法 现在我想执行代码 但直到这个后台方法完成为止 我怎样才能做到这一点 我正在使用 swift 编程语言 这是一些可以帮助您的
  • Laravel Cookies 中的额外字符串和管道字符

    在我正在开发的 Laravel 6x 项目中 我设置了一个 cookie Cookie queue remember me json encode uid gt user gt id token gt token 2628000 我正在读取
  • mysql:如何在LEFT JOIN后保存ORDER BY而不重新排序?

    我有两张桌子 1 profiles id name 1 WILLIAM 2 JOHN 3 ROBERT 4 MICHAEL 5 JAMES 6 DAVID 7 RICHARD 8 CHARLES 9 JOSEPH 10 THOMAS 2 r
  • 如何在 UILabel 中解析和显示超链接(电话号码/电子邮件地址等)?

    几乎在 iPhone 的任何地方 您都可以键入文本 操作系统会将部分文本识别为超链接 例如电话号码 电子邮件地址 不过 我在自己的应用程序中使用 UILabel 对此进行了测试 但它不起作用 我如何激活这个 iphone sdk 是否提供了
  • Android 中 Twitter 共享的 xAuth 身份验证?

    我正在研究Twitter Authentication 基本身份验证将expire8月16日起 所以我们必须使用OAuth使用 Twitter 身份验证 但实施起来有些复杂 XAuth就是切断了两个步骤 但问题是我used Twitter4
  • 如何从 Nodejs 服务器启用 CORS

    我正在使用 React 将数据发送到我的 API 我发出的每个 POST 请求都会给我一个 OPTIONS 请求 我需要解决这个问题 我想我可能需要做一些预检结构 但读完后我仍然不知道如何实现它 目前我正在连接到我的 API 如下所示 fe
  • Karate API 测试 - 如何在同一功能中使用从 API 1 到另一个 API 的变量(响应输出)

    我有一个场景 调用 API 捕获响应 从响应中获取 ID 并调用另一个 API 该 API 从响应 1 中获取输入 ID Ex Feature test graphql end point Background url baseUrl gr
  • Chrome:在微任务执行期间调用“alert()”已被弃用并将被删除

    在处理我的网络应用程序 特别是文件上传 时 Chrome 在我发出警报后显示了一条警告 在微任务执行期间调用 alert 已被弃用 并将于 2016 年 9 月左右在 M53 中删除 请参阅https www chromestatus co
  • Windows 10 中签名的 ClickOnce 应用程序抛出“未知发布者”

    我们的绝大多数企业用户都运行 Windows 7 我们的 ClickOnce 应用程序可以正常安装 更新和运行 不会弹出任何警告 同一应用程序在 Windows 10 上抛出以下内容 当然 更多信息 似乎是文本的一部分 而不是您可以单击的内
  • 如何在vue中用鼠标选择项目时滚动

    您好 我在选择项目时面临着非常具有挑战性和有趣的滚动问题mouse向两个方向拖动 i e上和下 这是一个屏幕截图 这是我的代码 https codesandbox io s select ivwq8j file src overridden