我正在使用hammer.js 在一个宠物项目上实现一些触摸屏功能。
所需的产品是可以使用触摸屏拖动和放大和缩小的地图。我让它工作了,一切都很好,除了捏/捏机制非常非常慢。在夹点发生和事件触发之间有一个非常明显的延迟。
这是相关的 JQuery/JS 代码:
编辑:现在根据西蒙的建议,代码更好(更快)。这是完成版
$(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
}
});
});