拖动事件未以角度 2 触发

2024-05-31

我有一个画布,我希望用户能够在其周围拖动图形元素。因此,我不希望画布本身拖动,但我想在鼠标执行这些操作时处理 Dragstart、拖放事件。

我正在使用 Angular 2,所以我有:

<!-- editor.component.html -->
<div #rendererContainer
  draggable="true"
  (dragstart)="onDragStart($event)"
  (drag)="onDrag($event)" 
  (dragover)="onDrag($event)" 
  (drop)="onDragEnd($event)"
  (dragend)="onDragEnd($event)"> 
</div>

然后在 editor.component.ts 中:

onDragStart(event) {
  console.log(`starting`);
  event.preventDefault();
}

onDrag(event) {
  console.log('dragging');
  event.preventDefault();
}

onDragEnd(event) {
  console.log('drag end');
  event.preventDefault();
}

当我尝试拖动某些东西时,我得到starting在控制台中打印,但仅此而已。如何触发其他拖动事件?我是否必须从 mousedown/move/up 事件中滚动自己的拖动?

独立示例堆栈闪电战 https://stackblitz.com/edit/angular-qqwkmq。我想“拖动”div 来触发拖启动/拖/放事件,但它只触发起始事件。


你不必使用event.preventDefault()。仅当您想使用纯 JS 时才需要这样做。

试试这个 Stackblitz:https://stackblitz.com/edit/angular-x7umar https://stackblitz.com/edit/angular-x7umar

另请参阅 MDN 实施指南,选择适合您用途的事件:https://developer.mozilla.org/en-US/docs/Web/Events/drag https://developer.mozilla.org/en-US/docs/Web/Events/drag

进一步的步骤

如果你想修改拖动的元素,只需在你的代码中实现一些 CSS 调整即可dragstart and dragend的处理程序event.target:

onDragStart(event: DragEvent) {
  console.log(`starting`, event);
  // Hide dragged element
  event.target.style.opacity = 0;
}

onDragEnd(event: DragEvent) {
  console.log('drag end', event);
  // Show dragged element again
  event.target.style.opacity = 1;
}

With event.target您拥有被拖动元素的完整可操作 DOM 元素。

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

拖动事件未以角度 2 触发 的相关文章

  • d3 添加 html 链接到表中的数据列

    我是 d3 和 Javascript 的新手 我正在尝试添加一个 a 元素 带有 href 属性 到指定数据列中的每个值 目前我正在使用以下代码来生成表 function tabulate data columns var table d3
  • Chrome 扩展:如何重定向到自定义 HTML 页面以响应特定的 Web 请求?

    I d like to write an extension that redirects all web traffic to a specific domain let s say wikipedia org to an interme
  • 如何在React Native中重用React JS组件

    我是新来的React JS 我正在尝试构建一个网络应用程序 该应用程序也应该在移动设备 Android 和 IOS 上运行 因此考虑使用react js for web application并创建了一些组件 那么是否可以使用React j
  • React:无法使用 useContext 挂钩在 app.js 中设置上下文状态

    我无法在 app js 中设置上下文状态 我以某种方式在其中获得空值 但可以在子组件中访问它 我想在用户访问页面时在 app js 中设置上下文状态 以便我可以在整个应用程序中使用它 例如根据用户是否登录显示不同的标题 根据请求的沙盒 UR
  • 与客户端的持久连接

    是否有通用方法可以使用 JavaScript 实现应用程序的一部分并提供与服务器的持久连接 我需要服务器能够将数据推送到客户端 无论客户端位于防火墙后面 提前致谢 See Comet http en wikipedia org wiki C
  • Meteor 中的全局变量

    I have var Schemas Meteor isClient Template registerHelper Schemas Schemas Schemas Person new SimpleSchema fullName type
  • 如何更改角度材料日期选择器格式

    这是我使用角度材料日期选择器时得到的日期格式 Wed Nov 21 2018 00 00 00 GMT 0530 India Standard Time 但我需要约会 YYYY MM DD or YYYY MM DDTHH mm 这种格式
  • 从 Angular 的详细信息页面导航回来后保持搜索页面的状态

    我是 Angular 新手 当用户通过单击搜索结果中的链接导航到详细信息页面时 我需要维护搜索结果页面的状态 即保留搜索结果网格的排序和过滤值 网格并再次导航回搜索页面 我尝试使用 CustomReuseStartegy 但遇到两个问题 当
  • D3.js -- 序数尺度(版本 3 到版本 4)

    我正在学习 Udemy 的 D3 js 课程 不幸的是 由于新版本 D3 js 的发布 没有任何关于其新语法的最新教程 因此我浏览了他们的 API 的 wiki 话虽如此 我一直困惑于如何翻译这段代码 版本 3 我在学习序数尺度 var d
  • C# 在 WebBrowser 中调用 JavaScript

    我正在尝试调用 JavaScript 方法WebBrowser WebBrowser webBrowser new WebBrowser webBrowser NavigateToString html webBrowser LoadCom
  • 反应调试模式和正常模式之间的本机不同行为

    嗨 我有一个非常复杂的问题 所以我在 github 上为这个问题创建了一个新的存储库 所以你可以克隆它并看看问题是什么 https github com guitar9 hafas client example https github c
  • 如何在 Ionic 中将图像同时放入

    我目前正在开发 Ionic 应用程序 并致力于在 ion header 和 ion content 中实现图像 这是我如何实现的屏幕截图 从屏幕截图中可以看到 离子标题和离子内容内容被隐藏 因为我设置了图像z index到高数字 有人可以建
  • 具有传输状态的 Angular 通用 flickring

    我使用 Angular 7 和 NodeJS Express 作为后端 API 我使用 Angular Universal 进行服务器端渲染以实现 SEO 角度 SSR 网站闪烁后 我使用基于 JWT 令牌的身份验证 并在每个 Http 请
  • 分页打印所有数据

    我在打印数据表中具有分页的所有数据时遇到问题 我已经做过研究并在此链接中发现了同样的问题 仅打印 https stackoverflow com questions 468881 print div id printarea div onl
  • 如何触发 Bootstrap Carousel 的轮播指示器

    我的代码有什么问题吗 我想触发当前的引导轮播幻灯片编号 我想在特定幻灯片时更改文本或执行一些 jQuery 命令 请看我的代码 document ready function myCarousel on slide bs carousel
  • 根据值过滤对象数组

    有没有办法通过可能存在于任何属性中的特定值来过滤对象数组 假设我有这个对象 var x name one swp two name two swp three name aa swp bb With Array prototype filt
  • 冻结 TH 标题和滚动数据

    我有一个 html 表 我想冻结标题行标签以滚动数据 我怎样才能做到这一点 我需要使用Dom吗 谢谢 我的解决方案是使用两个表并固定列宽 下面的表格位于可滚动的 div 中 并且没有标题
  • 如何在 Google 地图 v3 中的每个标记上添加编号?

    我想问大家如何使用 JavaScript 在 Google 地图 v3 中的每个标记上动态添加数字 例如 第一个标记是 1 第二个标记是 2 等等 在这种情况下 我的位置数据如下 new google maps LatLng 1 3667
  • Visual Studio 2013 中的 JavaScript HTML5 CSS3 项目模板

    我刚刚下载了 Visual Studio 2013 Express for Web 我想知道如何部署仅限 JavaScript HTML5 和 CSS3 的项目 我找不到合适的模板或方法来做到这一点 我已经在网上搜索过JavaScript模
  • 使用按键选择 PrimeNG 表上的行

    我正在使用 PrimeNG 表 并尝试选择pSelectableRow通过按键 我有一个全局搜索输入 它将过滤表的所有结果 当用户完成搜索时 我希望他们能够单击键盘上的按钮并从过滤的选项中选择行 目前 如果用户正在搜索并且输入框获得焦点 则

随机推荐