如何在一般HTML元素上获得触摸事件(Hammer)?(How do I get touch events (Hammer) on general HTML elements?)

系统教程 行业动态 更新时间:2024-06-14 16:55:57
如何在一般HTML元素上获得触摸事件(Hammer)?(How do I get touch events (Hammer) on general HTML elements?)

我在滑动菜单/导航器的页面元素中有一个DIV。 我正在尝试捕获此元素上的Hammer事件,但我只能访问“触摸”事件。

var hammer = Hammer(getElementById('myDiv')); hammer.on('touch swipe', function(e){ console.log(e); });

有没有我缺少的东西,或Onsen UI是否设置了Hammer干扰的特定事物?

I have a DIV inside a page element of a sliding menu / navigator. I'm trying to capture Hammer events on this element but am only able to access "touch" events.

var hammer = Hammer(getElementById('myDiv')); hammer.on('touch swipe', function(e){ console.log(e); });

Is there something I'm missing, or does Onsen UI set specific things with Hammer that is interfering?

最满意答案

您是否取消了默认触摸事件? 它对我有用。

var element = document.querySelector('.your-div'); element.ontouchmove = function(event) { if (!event.elementIsEnabled) { event.preventDefault(); } }; element.ontouchstart = function(event) { if (!event.elementIsEnabled) { event.preventDefault(); } }; element.ontouchend = function(event) { if (!event.elementIsEnabled) { event.preventDefault(); } }; var hammertime = Hammer(element).on("swiperight", function(event) { //do stuff });

Did you cancel default touch event? It worked for me.

var element = document.querySelector('.your-div'); element.ontouchmove = function(event) { if (!event.elementIsEnabled) { event.preventDefault(); } }; element.ontouchstart = function(event) { if (!event.elementIsEnabled) { event.preventDefault(); } }; element.ontouchend = function(event) { if (!event.elementIsEnabled) { event.preventDefault(); } }; var hammertime = Hammer(element).on("swiperight", function(event) { //do stuff });

更多推荐

本文发布于:2023-04-10 11:24:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/dzcp/4aa3d37f0a3ae7272cd3ea2ce55200d9.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:在一   元素   事件   HTML   Hammer

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!