//图片手势放大 varreqAnimationFrame = (function() { returnwindow[Hammer.prefixed(window,'requestAnimationFrame')] ||function(callback) { window.setTimeout(callback, 1000 / 60); }; })(); varel = $('img'); varticking =false; vartransform; varinitScale = 1; var_eImg =''; for(varm = 0; m < el.length; m++) { varmc =newHammer.Manager(el[m]); mc.add(newHammer.Pan({ threshold: 0, pointers: 0 })); mc.add(newHammer.Swipe()).recognizeWith(mc.get('pan')); mc.add(newHammer.Pinch({ threshold: 0 })).recognizeWith(mc.get('pan')); mc.on('panstart panmove', onPan); mc.on('pinchstart pinchmove', onPinch); mc.on('swipe', onSwipe); } functionresetElement() { el.addClass('animate'); transform = { translate: { x: 0, y: 0 }, scale: 1, angle: 0, rx: 0, ry: 0, rz: 0 }; requestElementUpdate(); } functionupdateElementTransform() { varvalue = ['translate3d('+ transform.translate.x +'px, '+ transform.translate.y +'px, 0)','scale('+ transform.scale +', '+ transform.scale +')','rotate3d('+ transform.rx +','+ transform.ry +','+ transform.rz +','+ transform.angle +'deg)']; value = value.join(' '); if(_eImg !='') { _eImg.style.webkitTransform = value; _eImg.style.mozTransform = value; _eImg.style.transform = value; //_eImg.css({ 'transform': value }, { '-webkit-transform': value }); } ticking =false; } functionrequestElementUpdate() { if(!ticking) { reqAnimationFrame(updateElementTransform); ticking =true; } } functiononPan(ev) { el.removeClass('animate'); transform.translate = { x: ev.deltaX, y: ev.deltaY }; } functiononPinch(ev) { if(ev.type =='pinchstart') { initScale = transform.scale || 1; } el.removeClass('animate'); transform.scale = initScale * ev.scale; requestElementUpdate(); _eImg = ev.target; return_eImg; } functiononSwipe(ev) { varangle = 10; transform.ry = (ev.direction & Hammer.DIRECTION_HORIZONTAL) ? 1 : 0; transform.rx = (ev.direction & Hammer.DIRECTION_VERTICAL) ? 1 : 0; transform.angle = (ev.direction & (Hammer.DIRECTION_RIGHT | Hammer.DIRECTION_UP)) ? angle : -angle; requestElementUpdate(); _eImg = ev.target; return_eImg; } resetElement();