我希望在移动 Web 应用程序(Android 和 iOS)上使用滑动事件,但我还需要浏览器本机捏合缩放功能以保持原位。
我曾尝试使用各种触摸事件库,例如 Hammer.js,但在处理滑动时似乎都放弃了移动 Safari 的捏缩放功能。保持垂直滚动不变也很好。
基本上,我正在寻找一种识别左/右方向滑动的方法,仅此而已。有任何想法吗?
我希望在移动 Web 应用程序(Android 和 iOS)上使用滑动事件,但我还需要浏览器本机捏合缩放功能以保持原位。
我曾尝试使用各种触摸事件库,例如 Hammer.js,但在处理滑动时似乎都放弃了移动 Safari 的捏缩放功能。保持垂直滚动不变也很好。
基本上,我正在寻找一种识别左/右方向滑动的方法,仅此而已。有任何想法吗?
我在最近的一个项目中使用了与此类似的功能。要使捏合缩放功能起作用,您只需要确保正确指定视口标签中的值,例如。
<meta name=viewport content="width=device-width,user-scalable=yes,initial-scale=1.0, maximum-scale=2.0"/>
最重要的值是 user-scalable=yes 和最大比例,因为它必须大于 1.0 才能允许缩放。
您可以在此处找到有关视口的更多信息:https ://developer.mozilla.org/en-US/docs/Mobile/Viewport_meta_tag
对于滑动事件,您可以将 swipeleft 和 swiperight 事件绑定到 jQuery Mobile 中的 .on() 函数。
这是您的代码应如下所示的示例:
$('#yourElement').on('swipeleft swiperight', function (event) {
//swiped to the left
if (event.type == "swipeleft") {
//do something
}
//swiped to the right
if (event.type == "swiperight") {
//do something
}
});
有关 jQuery Mobile 事件的更多信息,您可以查看此链接(或上面提供的链接 m_gol,因为它们基本相同):
http://jquerymobile.com/demos/1.1.1/docs/api/events.html
使用上面的两组代码,您将能够检测滑动事件以及捏合以缩放页面。