ペット プロジェクトにいくつかのタッチスクリーン機能を実装するために、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
}
});
});