我正在做一个HTML5应用程序,我想配置一个滑动/拖动功能来打开/关闭offcanvas菜单。
该功能效果很好,但我希望有更精确的水平滑动或拖动,以防止触发垂直滚动和激活菜单。
默认情况下,滑动似乎效果不佳,因为必须非常快(甚至更改速度),拖动效果正常,但只需按下并移动一下即可激活事件。
我尝试更改变量drag_lock_min_distance
,但遗憾的是根本不起作用,即使对于后面的巨大值,我也感觉不到差异。
我尝试检查实时内部变量X的速度和距离,但是它们显示的值是第一个事件的参考,而不是dragstart
和dragend
。
我正在使用原始hammer.js与twitter bootstrap,hammerjs版本1.0.6来自CDN(最后稳定版本)。我正在测试Android股票浏览器4.1.2和4.4(两款不同的手机)以及谷歌Chrome for Android。 这里有代码:
var element = document.getElementById('contenido');
Hammer(element,{drag: true,
prevent_default: false,
drag_block_horizontal: true,
drag_lock_min_distance: 250,
hold: true,
release: true}).on("dragleft", function(event) {
// function
});
Hammer(element,{drag: true,
prevent_default: false,
drag_block_horizontal: true,
drag_lock_min_distance: 250,
hold: true,
release: true}).on("dragright", function(event) {
//function
});
你知道有什么方法可以控制距离,使事件的解雇变得不那么明智吗?
答案 0 :(得分:1)
对于将来遇到这种情况的人,来自Hammer > 2.0
,
您可以指定阈值选项以设置识别前所需的最小距离,如下所示:
var hammertime = new Hammer(myElement, myOptions);
hammertime.get('swipe').set({ threshold: 100 });
hammertime.on('swipe', function(ev) {
console.log(ev);
});