hammer.js实现图片手势放大效果
发布时间 - 2026-01-11 03:01:10 点击率:次本文实例为大家分享了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();
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# hammer.js图片手势放大
# hammer.js手势放大
# hammer.js图片放大
# javascript实现商品图片放大镜
# js实现点击图片在屏幕中间弹出放大效果
# JavaScript实现图片放大镜效果
# JavaScript实现多张图片放大镜效果示例【不限定图片尺寸
# rem单位】
# JavaScript实现图片的放大缩小及拖拽功能示例
# js实现图片局部放大效果详解
# js实现图片放大并跟随鼠标移动特效
# JS滚轮控制图片缩放大小和拖动的实例代码
# JS与CSS3实现图片响应鼠标移动放大效果示例
# JS实现图片放大镜插件详解
# js实现图片放大展示效果
# JavaScript实现图片放大预览效果
# 大家分享
# 具体内容
# 大家多多
# lt
# length
# add
# Manager
# mc
# false
# ticking
# transform
# _eImg
# initScale
# Pinch
# pan
# panstart
# onPan
# panmove
# threshold
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
北京企业网站设计制作公司,北京铁路集团官方网站?
Laravel如何使用Vite进行前端资源打包?(配置示例)
如何在建站宝盒中设置产品搜索功能?
简历在线制作网站免费版,如何创建个人简历?
Laravel怎么清理缓存_Laravel optimize clear命令详解
武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?
高端建站三要素:定制模板、企业官网与响应式设计优化
Laravel怎么生成URL_Laravel路由命名与URL生成函数详解
Laravel中Service Container是做什么的_Laravel服务容器与依赖注入核心概念解析
Laravel项目怎么部署到Linux_Laravel Nginx配置详解
Mybatis 中的insertOrUpdate操作
微信公众帐号开发教程之图文消息全攻略
linux写shell需要注意的问题(必看)
Python正则表达式进阶教程_复杂匹配与分组替换解析
Laravel如何自定义分页视图?(Pagination示例)
如何用y主机助手快速搭建网站?
浅述节点的创建及常见功能的实现
Laravel如何获取当前用户信息_Laravel Auth门面获取用户ID
EditPlus中的正则表达式 实战(1)
利用python获取某年中每个月的第一天和最后一天
网站制作大概要多少钱一个,做一个平台网站大概多少钱?
Google浏览器为什么这么卡 Google浏览器提速优化设置步骤【方法】
如何用wdcp快速搭建高效网站?
VIVO手机上del键无效OnKeyListener不响应的原因及解决方法
如何在香港服务器上快速搭建免备案网站?
Midjourney怎样加参数调细节_Midjourney参数调整技巧【指南】
阿里云高弹*务器配置方案|支持分布式架构与多节点部署
Laravel Blade模板引擎语法_Laravel Blade布局继承用法
Laravel怎么写单元测试_PHPUnit在Laravel项目中的基础测试入门
Java Adapter 适配器模式(类适配器,对象适配器)优缺点对比
Laravel中的Facade(门面)到底是什么原理
Laravel怎么为数据库表字段添加索引以优化查询
如何解决hover在ie6中的兼容性问题
悟空识字怎么关闭自动续费_悟空识字取消会员自动扣费步骤
Laravel定时任务怎么设置_Laravel Crontab调度器配置
jQuery中的100个技巧汇总
Laravel怎么调用外部API_Laravel Http Client客户端使用
手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?
使用Dockerfile构建java web环境
详解Nginx + Tomcat 反向代理 负载均衡 集群 部署指南
如何正确选择百度移动适配建站域名?
企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?
Laravel怎么实现微信登录_Laravel Socialite第三方登录集成
如何在 Pandas 中基于一列条件计算另一列的分组均值
Android自定义listview布局实现上拉加载下拉刷新功能
新三国志曹操传主线渭水交兵攻略
Laravel Asset编译怎么配置_Laravel Vite前端构建工具使用
,网页ppt怎么弄成自己的ppt?
如何在云服务器上快速搭建个人网站?
如何快速上传建站程序避免常见错误?

