使用Hammer.js进行捏合缩放
使用Hammer.js进行捏合缩放
我正在尝试使用hammer.js实现捏放缩功能。
这是我的HTML代码:
这是我的脚本:
var hammertime = Hammer(document.getElementById('pinchzoom'), { transform_always_block: true, transform_min_scale: 1, drag_block_horizontal: false, drag_block_vertical: false, drag_min_distance: 0 }); var rect = document.getElementById('rect'); var posX=0, posY=0, scale=1, last_scale, rotation= 1, last_rotation; hammertime.on('touch drag transform', function(ev) { switch(ev.type) { case 'touch': last_scale = scale; last_rotation = rotation; break; case 'drag': posX = ev.gesture.deltaX; posY = ev.gesture.deltaY; break; case 'transform': rotation = last_rotation + ev.gesture.rotation; scale = Math.max(1, Math.min(last_scale * ev.gesture.scale, 10)); break; } // transform! var transform = //"translate3d("+posX+"px,"+posY+"px, 0) " + "scale3d("+scale+","+scale+", 0) "; rect.style.transform = transform; rect.style.oTransform = transform; rect.style.msTransform = transform; rect.style.mozTransform = transform; rect.style.webkitTransform = transform; });
它工作得很好,但是我无法滚动图像。取消注释transform3d后,它可以工作,但是在拖动时图像会丢失位置。我不能使用jQuery。