我一直在寻找一个好的 jQuery 库,它允许我将触摸事件附加到 DOM 元素,特别是滑动/点击。
我尝试过hammer.js,在文档中它告诉我它具有滑动效果,但是当我尝试像 $('.element').on('swipe', function() 那样附加它时{//do smth });
它不起作用。
我能够通过使用其“dragend”事件来模拟滑动,但不好的是有时它有效,有时则无效。
为了更具体地说明我想要实现的目标 - 检查手机上的 Twitter 网站,并尝试在时间线/提要中向左/向右滑动一条推文,它应该会显示一些“回复”/“转发”的操作按钮'/'最喜欢的'。
任何人都可以给我一个代码示例或一个包含有关如何实现此目标的良好文档的库吗?
P.S:我无法在此项目中使用 jQuery mobile。
最佳答案
我无法帮助您使用库,但我可以复制/粘贴我用来使用 JQuery 进行滑动的内容。 此示例仅适用于上下滑动,但很容易适应其他手势。
这是插件部分:
;(function($) {
$.fn.tactile = function(swipe) {
return this.each(function() {
var $this = $(document),
isTouching = false,
debut; // means start in french
$this.on('touchstart', debutGeste);
function debutGeste() { // means start of gesture
if (event.touches.length == 1) {
debut = event.touches[0].pageY;
isTouching = true;
$this.on('touchmove', geste);
}
}
function finGeste() { // means end of gesture
$this.off('touchmove');
isTouching = false;
debut = null;
}
function geste() { // geste means gesture
if(isTouching) {
var actuel = event.touches[0].pageY,
delta = debut - actuel;
if (Math.abs(delta) >= 30) { // this '30' is the length of the swipe
if (delta > 0) {
swipe.up();
} else {
swipe.down();
}
finGeste();
}
}
event.preventDefault();
}
});
};
})(jQuery);
这是使用部分:
$(document).tactile({
up: function() { },
down: function() { }
});
我不能保证这是正确的方法,这也不是好的代码,但它可以工作。
关于Jquery 触摸滑动事件/无 jQuery 移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12428433/