可以实现手势操作:拖动、缩放、旋转。封装好的脚本方法是这样的:
var cat = window.cat || {};
cat.touchjs = {
left: 0,
top: 0,
scaleVal: 1, //缩放
rotateVal: 0, //旋转
curStatus: 0, //记录当前手势的状态, 0:拖动, 1:缩放, 2:旋转
//初始化
init: function ($targetObj, callback) {
touch.on($targetObj, 'touchstart', function (ev) {
cat.touchjs.curStatus = 0;
ev.preventDefault();//阻止默认事件
});
if (!window.localStorage.cat_touchjs_data)
callback(0, 0, 1, 0);
else {
var jsonObj = JSON.parse(window.localStorage.cat_touchjs_data);
cat.touchjs.left = parseFloat(jsonObj.left), cat.touchjs.top = parseFloat(jsonObj.top), cat.touchjs.scaleVal = parseFloat(jsonObj.scale), cat.touchjs.rotateVal = parseFloat(jsonObj.rotate);
callback(cat.touchjs.left, cat.touchjs.top, cat.touchjs.scaleVal, cat.touchjs.rotateVal);
}
},
//拖动
drag: function ($targetObj, callback) {
touch.on($targetObj, 'drag', function (ev) {
$targetObj.css("left", cat.touchjs.left + ev.x).css("top", cat.touchjs.top + ev.y);
});
touch.on($targetObj, 'dragend', function (ev) {
cat.touchjs.left = cat.touchjs.left + ev.x;
cat.touchjs.top = cat.touchjs.top + ev.y;
callback(cat.touchjs.left, cat.touchjs.top);
});
},
//缩放
scale: function ($targetObj, callback) {
var initialScale = cat.touchjs.scaleVal || 1;
var currentScale;
touch.on($targetObj, 'pinch', function (ev) {
if (cat.touchjs.curStatus == 2) {
return;
}
cat.touchjs.curStatus = 1;
currentScale = ev.scale - 1;
currentScale = initialScale + currentScale;
cat.touchjs.scaleVal = currentScale;
var transformStyle = 'scale(' + cat.touchjs.scaleVal + ') rotate(' + cat.touchjs.rotateVal + 'deg)';
$targetObj.css("transform", transformStyle).css("-webkit-transform", transformStyle);
callback(cat.touchjs.scaleVal);
});
touch.on($targetObj, 'pinchend', function (ev) {
if (cat.touchjs.curStatus == 2) {
return;
}
initialScale = currentScale;
cat.touchjs.scaleVal = currentScale;
callback(cat.touchjs.scaleVal);
});
},
//旋转
rotate: function ($targetObj, callback) {
var angle = cat.touchjs.rotateVal || 0;
touch.on($targetObj, 'rotate', function (ev) {
if (cat.touchjs.curStatus == 1) {
return;
}
cat.touchjs.curStatus = 2;
var totalAngle = angle + ev.rotation;
if (ev.fingerStatus === 'end') {
angle = angle + ev.rotation;
}
cat.touchjs.rotateVal = totalAngle;
var transformStyle = 'scale(' + cat.touchjs.scaleVal + ') rotate(' + cat.touchjs.rotateVal + 'deg)';
$targetObj.css("transform", transformStyle).css("-webkit-transform", transformStyle);
$targetObj.attr('data-rotate', cat.touchjs.rotateVal);
callback(cat.touchjs.rotateVal);
});
}
};
html代码:
<div style="position:relative;width: 100%;height: 250px;overflow: hidden;border: 1px dashed #ff0000;"> <img id="targetObj" style="position:relative;transform-origin:center" src="http://demo.somethingwhat.com/images/flower1.jpg" /> </div>
js调用:
var $targetObj = $('#targetObj');
//初始化设置
cat.touchjs.init($targetObj, function (left, top, scale, rotate) {};
//初始化拖动手势(不需要就注释掉)
cat.touchjs.drag($targetObj, function (left, top) { });
//初始化缩放手势(不需要就注释掉)
cat.touchjs.scale($targetObj, function (scale) { });
//初始化旋转手势(不需要就注释掉)
cat.touchjs.rotate($targetObj, function (rotate) { });
以上所述是小编给大家介绍的touch.js 拖动、缩放、旋转 (鼠标手势)功能代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
# touch.js
# 手势拖动
# 旋转
# 手势缩放
# js实现图片旋转 js滚动鼠标中间对图片放大缩小
# 基于css3新属性transform及原生js实现鼠标拖动3d立方体旋转
# 图片旋转、鼠标滚轮缩放、镜像、切换图片js代码
# js根据鼠标移动速度背景图片自动旋转的方法
# JavaScript实现环绕鼠标旋转效果
# 拖动
# 不需要
# 小编
# 鼠标
# 在此
# 是这样
# 给大家
# 可以实现
# 所述
# 给我留言
# 感谢大家
# 装好
# 疑问请
# 有任何
# jsonObj
# cat_touchjs_data
# parse
# JSON
# localStorage
# touchstart
相关文章:
建站之星伪静态规则如何正确配置?
香港服务器网站生成指南:免费资源整合与高速稳定配置方案
高防服务器租用如何选择配置与防御等级?
如何快速查询网站的真实建站时间?
jQuery 常见小例汇总
建站之星北京办公室:智能建站系统与小程序生成方案解析
详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)
建站之星价格显示格式升级,你的预算足够吗?
C#如何使用XPathNavigator高效查询XML
高配服务器限时抢购:企业级配置与回收服务一站式优惠方案
建站之星如何一键生成手机站?
上海网站制作网页,上海本地的生活网站有哪些?最好包括生活的各个方面的?
如何快速完成中国万网建站详细流程?
免费公司网站制作软件,如何申请免费主页空间做自己的网站?
h5网站制作工具有哪些,h5页面制作工具有哪些?
制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?
盘锦网站制作公司,盘锦大洼有多少5G网站?
c++ stringstream用法详解_c++字符串与数字转换利器
网站专业制作公司有哪些,做一个公司网站要多少钱?
齐河建站公司:营销型网站建设与SEO优化双核驱动策略
邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?
网站制作费用多少钱,一个网站的运营,需要哪些费用?
如何在西部数码注册域名并快速搭建网站?
常州自助建站工具推荐:低成本搭建与模板选择技巧
台州网站建设制作公司,浙江手机无犯罪记录证明怎么开?
如何用IIS7快速搭建并优化网站站点?
长沙企业网站制作哪家好,长沙水业集团官方网站?
如何通过西部建站助手安装IIS服务器?
宠物网站制作html代码,有没有专门介绍宠物如何养的网站啊?
微信小程序 五星评分(包括半颗星评分)实例代码
教学网站制作软件,学习*后期制作的网站有哪些?
如何注册花生壳免费域名并搭建个人网站?
建站之星导航菜单设置与功能模块配置全攻略
如何通过IIS搭建网站并配置访问权限?
如何快速配置高效服务器建站软件?
如何高效搭建专业期货交易平台网站?
网站制作外包价格怎么算,招聘网站上写的“外包”是什么意思?
建站主机空间推荐 高性价比配置与快速部署方案解析
网站制作专业公司有哪些,如何制作一个企业网站,建设网站的基本步骤有哪些?
电商网站制作价格怎么算,网上拍卖流程以及规则?
如何在阿里云通过域名搭建网站?
如何打造高效商业网站?建站目的决定转化率
如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?
东莞市网站制作公司有哪些,东莞找工作用什么网站好?
定制建站模板如何实现SEO优化与智能系统配置?18字教程
Android使用GridView实现日历的简单功能
css网站制作参考文献有哪些,易聊怎么注册?
建站主机是否等同于虚拟主机?
公司网站制作需要多少钱,找人做公司网站需要多少钱?
外贸公司网站制作哪家好,maersk船公司官网?
*请认真填写需求信息,我们会在24小时内与您取得联系。