时间:2021-05-28
本文实例为大家分享了hammer.js实现图片手势放大效果的具体代码,供大家参考,具体内容如下
//图片手势放大 var reqAnimationFrame = (function() { return window[Hammer.prefixed(window, 'requestAnimationFrame')] || function(callback) { window.setTimeout(callback, 1000 / 60); }; })(); var el = $('img'); var ticking = false; var transform; var initScale = 1; var _eImg = ''; for (var m = 0; m < el.length; m++) { var mc = new Hammer.Manager(el[m]); mc.add(new Hammer.Pan({ threshold: 0, pointers: 0 })); mc.add(new Hammer.Swipe()).recognizeWith(mc.get('pan')); mc.add(new Hammer.Pinch({ threshold: 0 })).recognizeWith(mc.get('pan')); mc.on('panstart panmove', onPan); mc.on('pinchstart pinchmove', onPinch); mc.on('swipe', onSwipe); } function resetElement() { el.addClass('animate'); transform = { translate: { x: 0, y: 0 }, scale: 1, angle: 0, rx: 0, ry: 0, rz: 0 }; requestElementUpdate(); } function updateElementTransform() { var value = ['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; } function requestElementUpdate() { if (!ticking) { reqAnimationFrame(updateElementTransform); ticking = true; } } function onPan(ev) { el.removeClass('animate'); transform.translate = { x: ev.deltaX, y: ev.deltaY }; } function onPinch(ev) { if (ev.type == 'pinchstart') { initScale = transform.scale || 1; } el.removeClass('animate'); transform.scale = initScale * ev.scale; requestElementUpdate(); _eImg = ev.target; return _eImg; } function onSwipe(ev) { var angle = 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();以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
这是一款不依赖任何js框架、纯javascript实现的画廊效果。它支持移动设备手势操作,如手势触摸滑动、放大和关闭图片,它还支持PC上的键盘操作,总之它是WE
先来几张效果图:点击其中一张照片可放大,可支持图片文字描述:同时支持分享功能:支持手势放大缩小使用js框架是PhotoSwipe。PhotoSwipe是一个图片
用js实现简单放大镜效果,供大家参考,具体内容如下此处放大镜实现的效果就是当鼠标放置在图片上会有半透明遮罩,图片的一个区域就会被放大,然后展示在右边。当鼠标移动
OPPOR17Pro手机看网页和图片的浏览页面是可以通过手势来缩放大小的,那么在手机桌面或者其他地方改如何实现放大呢,这就需要放大手势来实现,下面我们就来看看详
大家都知道手机上网页和图片的浏览页面是可以通过手势来缩放大小的,那么在手机桌面或者其他地方改如何实现放大呢?快来了解一下OPPOK1的放大手势功能吧!OPPOK