【发布时间】:2013-10-18 16:46:38
【问题描述】:
我正在使用hammer.js 在一个宠物项目中实现一些触摸屏功能。
所需的产品是可以通过触摸屏拖动和放大和缩小的地图。我让它工作了,一切都很好,除了捏/捏机制非常非常慢。从夹点发生到事件触发之间有一个非常明显的延迟。
以下是相关的 JQuery/JS 代码:
编辑:根据 Simon 的建议,代码现在更好(更快)了。这是完成的版本
$(document).ready(function(){
//Function which simulates zoom on the map on pinchin/pinchout
$('#map').hammer()
.on("pinchin", function(e) {
var scale = $(this).css('transform');
scale = (scale == null ? $(this).css('-webkit-transform') : scale);
scale = (scale == null ? $(this).css('-ms-transform') : scale);
scale = scale.split(" ");
scale = parseFloat(scale[0].substring(7, scale[0].length - 1));
if(scale > 1) {
scale = ('scale(' + (scale - .1).toString() + ')');
$(this).css({'transform':scale, '-ms-transform':scale, '-webkit-transform':scale });
}
})
.on("pinchout", function(e) {
var scale = $(this).css('transform');
scale = (scale == null ? $(this).css('-webkit-transform') : scale);
scale = (scale == null ? $(this).css('-ms-transform') : scale);
scale = scale.split(" ");
scale = parseFloat(scale[0].substring(7, scale[0].length - 1));
if(scale < 5) {
scale = ('scale(' + (scale + .1).toString() + ')');
$(this).css({'transform':scale, '-ms-transform':scale, '-webkit-transform':scale
}
});
});
【问题讨论】:
-
你能告诉我你在上面例子中使用的锤子版本吗,因为当我使用最新的锤子时,我得到了错误“对象[对象对象]没有方法'锤子'”
-
@MohamedS.AbuEmesh 如果您只是在hammerjs 网站上尝试演示,您会发现如果您反复进行捏合和捏合,检测到的手势会延迟很多秒。这是特定于捏合和捏合的。使用 Firefox 在 Android 上测试。
-
谢谢,现在我正在使用 iScroll 5,它在 Android、iPhone 和 iPad 上运行良好。
标签: javascript jquery hammer.js