我找到了一个有趣的资源:Hammer.js。我试着用Hammer和jQuery刷卡。
1)我已下载代码here
2)我已将该代码放入文档中。我在文档的头部放了一个代码链接,我想使用滑动:<script src="hammer.js"></script>
3)我不知道如何使用它。我尝试在jQuery中做类似的事情。我的意思是我想要滑动而不是点击:
$(function(){
$(".blue").click(function() {
$(".blue").animate({left: "0"}, 500)
});
})
答案 0 :(得分:31)
这样的东西? http://jsfiddle.net/6jxbv/119/
我正在使用Hammer(element).on("event", callback);
来获得结果。在这种情况下,我添加了swipeleft
和swiperight
个事件。
该脚本使用上述语法添加以下事件:
drag, dragstart, dragend, dragup, dragdown, dragleft, dragright
swipe, swipeup, swipedown, swipeleft, swiperight
如果你想将它与jQuery一起使用,它们会提供这种语法(如果你问我,这有点尴尬):
$(elementOrSelector).hammer().on("event", function(event) {
//callback
});
但你必须包含jquery.hammer.js
插件
尝试阅读the docs了解更多信息
编辑:
在这里,您可以看到使用滑动和拖动的示例。考虑到滑动是快速移动(使用鼠标或触摸)并且拖动是按下并移动(因此实现它不正确,但我会将动画留给您。:))
http://jsfiddle.net/uZjCB/183/和全屏http://jsfiddle.net/uZjCB/183/embedded/result/
希望有所帮助
答案 1 :(得分:10)
使用Hammer.js 2.0,您需要使用识别器:
var blue = document.getElementById('blue');
var hammer = new Hammer.Manager(blue);
var swipe = new Hammer.Swipe();
hammer.add(swipe);
hammer.on('swipeleft', function(){
$(blue).animate({left: "-=100"}, 500)
});
hammer.on('swiperight', function(){
$(blue).animate({left: "+=100"}, 500)
});
详细了解Hammer documentation
答案 2 :(得分:5)
使用正确的Hammer cdn更新JS fiddle,现在它正在运行:
$(function(){
var red = document.getElementById("red");
var blue = document.getElementById("blue");
//Swipe
Hammer(red).on("swipeleft", function() {
$(this).find(".color").animate({left: "-=100"}, 500);
$("#event").text("swipe left");
});
Hammer(red).on("swiperight", function() {
$(this).find(".color").animate({left: "+=100"}, 500);
$("#event").text("swipe right");
});
// Drag
Hammer(blue).on("dragleft", function() {
$(this).find(".color").animate({left: "-=100"}, 500);
$("#event").text("drag left");
});
Hammer(blue).on("dragright", function() {
$(this).find(".color").animate({left: "+=100"}, 500);
$("#event").text("drag right");
});
});
答案 3 :(得分:0)
使用Hammer.js v2.0.8尝试这种方式
https://jsfiddle.net/elijah123467/q6m84wgt/6/
var body = $("#body");
var navbar = $("#navbar");
var hammertimeBodyRight = new Hammer.Manager(body[0], {
recognizers: [
[Hammer.Swipe, { direction: Hammer.DIRECTION_RIGHT}]
]
});
hammertimeBodyRight.on("swipe", function (ev) {
var canvasSlid = navbar.hasClass("canvas-slid");
if (!canvasSlid) {
$(".navbar-toggle").click();
}
});
var hammertimeBodyLeft = new Hammer.Manager(body[0], {
recognizers: [
[Hammer.Swipe, { direction: Hammer.DIRECTION_LEFT}]
]
});
hammertimeBodyLeft.on("swipe", function (ev) {
var canvasSlid = navbar.hasClass("canvas-slid");
if (canvasSlid) {
$(".navbar-toggle").click();
}
});
var hammertimeNavbarRight = new Hammer.Manager(navbar[0], {
recognizers: [
[Hammer.Swipe, { direction: Hammer.DIRECTION_RIGHT}]
]
});
hammertimeNavbarRight.on("swipe", function (ev) {
var canvasSlid = navbar.hasClass("canvas-slid");
if (!canvasSlid) {
$(".navbar-toggle").click();
}
});
var hammertimeNavbarLeft = new Hammer.Manager(navbar[0], {
recognizers: [
[Hammer.Swipe, { direction: Hammer.DIRECTION_LEFT}]
]
});
hammertimeNavbarLeft.on("swipe", function (ev) {
var canvasSlid = navbar.hasClass("canvas-slid");
if (canvasSlid) {
$(".navbar-toggle").click();
}
});