如何在 Angular 中注册触摸移动事件?

2023-12-26

总结一下问题

堆栈闪电战 -https://stackblitz.com/edit/angular-touch-playground https://stackblitz.com/edit/angular-touch-playground

我正在尝试注册触摸事件,并希望能够触摸我的手指,拖动并抬起我的手指,从而导致每个td触摸以突出显示的表格的一部分。这似乎被记录为pan event

我用过字典pressed当任何事件click, touch, etc寄存器和[class.bg-warning]="pressed[i]"来突出这些。

有没有办法分别注册td感动?

我尝试过类似的事件click, touchstart and hammerjs事件(在app.module.ts我已经通过导入import 'hammerjs';)但我必须点击每个td来突出显示它。

<td *ngFor="let dummy of ' '.repeat(48).split(''), let i = index"
    (press)="logPress(i)"
    (mouseenter)="logMouseIn(i)"
    (touchmove)="logTouchmove(i)"
    (click)="logClick(i)"
    (touch)="logTouch(i)"
    (touchend)="logTouchend(i)"
    (hover)="logHover(i)"
    (touchstart)="logTouchstart(i)"
    (touchend)="logTouchend(i)"
    (touchcancel)="logTouchcancel(i)"
    [class.bg-warning]="pressed[i]" >
</td>

设置示例pressed字典:

logClick(i: number) {
 this.event += '\n Click: '+ i.toString();
 this.pressed[i]=1;
}

斯塔克闪电战 - https://stackblitz.com/edit/angular-touch-playground-pan-events https://stackblitz.com/edit/angular-touch-playground-pan-events

需要更改- 这里的关键是如果我这样做

(pan)="logPan(i)"

td那么无论 pan 事件都会记录相同的i作为平底锅开始的地方。

而如果我这样做

(pan)="logPan($event)"

我可以访问$event坐标(x, y) via evt.center.x / evt.center.y.

使用坐标- 转换坐标(x, y) to the td我关心我用过的元素从点 https://developer.mozilla.org/en-US/docs/Web/API/DocumentOrShadowRoot/elementFromPoint方法其中返回指定坐标处的最顶层元素(相对于视口)我添加了一个可访问属性id每一个td这样我就可以设置我的pressed字典,正在记录td感动。

logPan(evt: any) {
  this.event += '\n Touch Pan: '+ `(${evt.center.x}, ${evt.center.y}, ${document.elementFromPoint(evt.center.x, evt.center.y).id})`
  this.pressed[document.elementFromPoint(evt.center.x, evt.center.y).id]=1;
}

额外的- 平移似乎没有拾取手指第一次开始的位置,因此需要额外的(touchstart)="logTouchstart(i)"是必须的。

Credit- 我在查看以下博客上的 Stackblitz 后发现了这一点:https://medium.com/angular-in-deep/gestures-in-an-angular-application-dde71804c0d0 https://medium.com/angular-in-depth/gestures-in-an-angular-application-dde71804c0d0

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

如何在 Angular 中注册触摸移动事件? 的相关文章

随机推荐

  • Rails 3,回形针 - 自定义插值

    我在制作自定义插值时遇到了一些麻烦 浏览了我在网上可以找到的每个示例 但无论我做什么 都没有成功 目前我有这个 Model has attached file photo path gt rails root public images i
  • 在 Netbeans 中包含本机库

    我正在尝试从 java 签名的小程序读取便携式设备 我发现了一个 jmtp 库http code google com p jmtp w list http code google com p jmtp w list访问便携式设备 但是当我
  • 如何正确使用 cv::triangulatePoints()

    我正在尝试用 OpenCV 对一些点进行三角测量 我发现了这个cv triangulatePoints 功能 问题是几乎没有相关的文档或示例 我对此有些疑问 它使用什么方法 我对三角测量做了一些研究 有几种方法 线性 线性 LS 特征值 迭
  • 使用审查表创建 ggplot2 生存曲线

    I am trying to create a Kaplan Meier plot with 95 confidence bands plus having the censored data in a table beneath it I
  • 如何在 pyinstaller 中设置隐藏导入

    我有一个包含多个包的大项目 这些包使用公共包中的一组模块 我尝试使用 pyinstaller 在 Windows 上创建 exe 但找不到通用包 这个被削减的项目也存在同样的问题 我的包的组织方式如下树所示 当我使用 python m my
  • 谷歌云存储控制台内容编码为gzip

    我正在使用 Google Cloud Storage 控制台上传文件 我没有使用任何命令行工具 我想在元数据中将内容编码设置为 gzip z 选项 请看下面的截图 z 值是否正确 我为所有 css 和 js 文件设置了值 z 并在 Page
  • 有没有办法从另一个 Android 应用程序获取 Android 应用程序视图层次结构?

    我正在研究在设备上运行 Android 自动化的方法 无需任何工作站连接 我的方法是这样的 我修改了猴子的源代码 并且能够启动第3方应用程序 我没有源访问权限 我也可以将击键发送到应用程序 但现在我面临另一个问题 我需要访问一些 ui 元素
  • 在 Scala 中使用 Spring @Transactional

    我们有一个混合 Java 和 Scala 的项目 它使用 Spring 事务管理 我们使用 Spring 方面将文件与 Transactional 带注释的方法编织在一起 问题是 Scala 类没有与 Spring 事务方面交织在一起 如何
  • HttpClient:禁用分块编码

    我正在使用 Apache Commons HttpClient 和 Restlet 来调用 Restful Web 服务 不幸的是 我的服务器 基于 Ruby on Rails 不喜欢Transfer Encoding chunkedHtt
  • 从 [[class alloc] init] 返回 nil 被认为是好的做法吗?

    这是 Objective C 中的常见习惯用法吗 我只在 NSImage alloc initWithContentsOfFile str 上看到过它 它总是让我认为存在内存泄漏 因为我调用了 alloc 口头禅是 调用 alloc 并且您
  • 在await调用之后,它不会执行下一行[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 const blabla async gt const foobar async gt return new Promise re
  • 无法导入 com.google。 .... 为什么?

    我只是尝试编译并运行示例项目 http developer android com training location geofencing html http developer android com training location
  • 创建一个目录并使用“open”返回一个dirfd

    我想用 C 创建一个文件树并避免可能的竞争条件 我的意图是使用open 3 创建根目录并open会返回一个目录文件描述符 dirfd 我将给后续openat 3 mkdirat 3 调用创建树 int dirfd open path O D
  • 在 UINavigationBar 上创建一个自定义左后按钮,左侧带有标准箭头

    当我创建自定义后退按钮时 我使用以下代码 UIBarButtonItem leftButton UIBarButtonItem alloc initWithTitle Yeah style UIBarButtonItemStyleBorde
  • 将 UITabBarController 与 UINavigationController 结合起来

    我尝试使用带有导航栏的 选项卡式应用程序 默认情况下 选项卡栏工作正常 但我只是无法获得导航栏 我发现了一些关于推动导航栏之类的东西 但我发现的所有东西都是几年前的 所以不要帮助我 而且最近的东西已经过时了 自从iOS5和新版本的Xcode
  • matplotlib 中共享轴方形子图的新 pythonic 风格?

    相关 在 matplotlib 中绘制具有固定限制的自动缩放子图 https stackoverflow com questions 13612610 plotting autoscaled subplots with fixed limi
  • 跟踪电子邮件以真实图像打开

    我正在考虑将电子邮件跟踪添加到我为小型客户企业构建的网络服务中 我打算做嵌入式图像解决方案 参考我服务器上的图像 除非其他人有更好的方法 但是当我使用图像标签引用服务器上的 PHP 页面时 它会加载 损坏的图像 图标 我怎样才能使它成为有效
  • 如何在material-ui中使用伪选择器?

    我一直在努力实现简单的事情 我试图显示 隐藏我的
  • 在 Xcode 4 中将项目添加到工作区时出现问题

    我前段时间在 Xcode 3 2 x 下启动了几个项目 几天前我切换到 Xcode 4 并希望将工作区功能用作这两个项目 基本上 我的计划是从两个项目中提取一些共同的功能 并使它们成为两个项目所依赖的公共库 然而 在我接触到棘手的依赖关系之
  • 如何在 Angular 中注册触摸移动事件?

    总结一下问题 堆栈闪电战 https stackblitz com edit angular touch playground https stackblitz com edit angular touch playground 我正在尝试