我正在玩hammer.js的网络应用程序.
我可以让它工作得很好,除了加载了ajax的内容.
我为jquery使用hammer.js特殊事件插件.
以下工作正常:
$('#menu a').on("tap", function(event) {
//console.log(event);
});
Run Code Online (Sandbox Code Playgroud)
但是当我使用jquery委托语法时:
$('body').on("tap", '#menu a', function(event) {
//console.log(event);
});
Run Code Online (Sandbox Code Playgroud)
什么都没发生...
什么是正确的语法?
我使用hammer.js库创建一个事件,如下所示:
Hammer(myElement).on("doubletap", function(evt){
evt.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)
我怎样才能删除注册的活动?我还可以使用Jquery吗?
我正在制作一个html5游戏并在我的iPad上进行测试.我想尽可能快速地刷卡,但我不知道该怎么做.我的意思是,给出一些像这样的代码:
$('#test_el').hammer().on("swipeup", function(event) {
console.log(this, event);
});
Run Code Online (Sandbox Code Playgroud)
当用户刷卡时,如何尽早制作控制台日志?有一件事情我已经做了设置在swipe_velocity
在选择像" 0.05"到一个非常小的数目.我制作的数字越小,刷卡响应越快.也许让数字更小可以得到我正是我需要的东西.但是在当前状态下,当我将它与具有类似控件的本机应用程序进行比较时,我得到的反应似乎仍有一点延迟.我想摆脱那种延迟,但我不知道如何.
我正在使用Hammer.js 2.0.4,我有两个hammerjs实例来监听tap
事件:在父div元素中,在子元素中有一个.我希望在孩子处理时停止事件传播.但是,hammer.js 2不支持.
在下面的示例中,我希望tap
子事件的事件首先触发,然后触发父事件的事件(事件从子节点冒泡到父节点).相反,它看起来像第一个创建的hammer.js 实例的tap
事件首先触发.
尝试以下示例(也在jsbin上):
<!DOCTYPE html>
<html>
<head>
<script src="//cdn.jsdelivr.net/hammerjs/2.0.4/hammer.js"></script>
<style>
#child {
width: 200px;
height: 200px;
background: lightgreen;
}
</style>
</head>
<body>
<p>
See the browser console. Why does the tap event of the parent div fire first?
</p>
<div id="parent">
<div id="child">click here</div>
</div>
<script>
var hammerParent = new Hammer(document.getElementById('parent'));
var hammerChild = new Hammer(document.getElementById('child'));
hammerParent.on('tap', function (event) {
console.log('tap parent');
});
hammerChild.on('tap', …
Run Code Online (Sandbox Code Playgroud) 我很难用hammer.js实现多点触控平移.仅使用单指针触发平移事件.如果我尝试用两根手指拖动它,直到我释放至少一根手指才会开火.我是否必须对锤子配置做一些特殊操作?
编辑:我已经发现我可以为pan事件配置2个指针,但是现在我看到Chrome有一个内置功能,可以在双指点击上打开上下文菜单,这大部分时间都会阻止平移被识别.如果我只是捕获'contextmenu'事件并调用preventDefault(),它(显然)将完全禁用pan识别器.还有其他方法吗?
BR,丹尼尔
我想向右滑动以关闭我的菜单.我希望用户能够在我的菜单中上下滚动,因为菜单可能在移动设备上很长.
但是,如果向上或向下滑动并向右滑动一下,它会关闭菜单.
http://codepen.io/ashconnolly/pen/gpBLPp/
$('.menu_toggle').click(function (event) {
$('.menu').toggleClass('active');
});
new Hammer(document.getElementById('menu')).on("panright", function(ev) {
$('.menu').removeClass('active');
});
Run Code Online (Sandbox Code Playgroud)
这有一个简单的方法吗?我几乎想要一个阈值来使它显而易见.
就像一个简单的计算 - 如果向右移动的距离大于垂直移动的距离=向右滑动.希望你能帮忙!
我下载了hammer-time.min.js,当我运行时,我的浏览器出现异常.
TypeError:this.hasTouchNone不是函数.(在'this.hasTouchNone(a.target)'中,'this.hasTouchNone'未定义)
我错过了一个图书馆吗?
更新: 我尝试下载完整的Javascript(非缩小版).它工作正常.当我检查代码时,hasTouchNone函数不在代码中.
我正在构建一个测试套件,并尝试覆盖100%的代码.事情是,我在平移时有回调函数.有没有人如何在angular2上使用karma和jasmine正确测试hammerjs事件?
HTML
<div (pan)="panning($event)" id="square">
Run Code Online (Sandbox Code Playgroud)
打字稿
public swiper($event) {
let e = $event;
let top = e.center.x - (e.target.clientHeight/2);
let left = e.center.y - (e.target.clientWidth/2);
e.target.style.transform = 'translate3d('+ top +'px, '+ left +'px, 0px)';
}
Run Code Online (Sandbox Code Playgroud)
谢谢.
中号
我正在使用Hammer JS进行swipeleft和swiperight事件,但是用户仍然需要能够上下滚动。我能够捕获swipeup和swipedown事件,但是我真正想做的是禁用它们(以及panup和pandown)。我将如何在Angular 2中执行此操作?
在Manager下,有一个取消绑定事件的方法,我只是不知道如何从Angular 2中调用它。
还是有另一种方法可以覆盖Hammer JS以允许正常滚动?
我正在使用带有Angular 5的Hammer.js来支持使用鼠标和触摸进行滑动.问题是触摸动作应该用两个手指而不是一个手指完成.
是否可以在Hammer.js中支持1和2指针进行滑动(左和右)?
理想情况下,我还想区分鼠标和触摸,因为"鼠标"事件返回maxPointers:1(总是?).