可以实现手势操作:拖动、缩放、旋转。封装好的脚本方法是这样的:
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
相关文章:
广州网站设计制作一条龙,广州巨网网络科技有限公司是干什么的?
平台云上自主建站:模板化设计与智能工具打造高效网站
简历在线制作网站免费版,如何创建个人简历?
相册网站制作软件,图片上的网址怎么复制?
如何用PHP快速搭建高效网站?分步指南
企业网站制作公司网页,推荐几家专业的天津网站制作公司?
极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?
网站制作软件有哪些,制图软件有哪些?
招贴海报怎么做,什么是海报招贴?
北京网站制作的公司有哪些,北京白云观官方网站?
制作证书网站有哪些,全国城建培训中心证书查询官网?
如何快速完成中国万网建站详细流程?
建站之星收费标准详解:套餐费用及年费价格表一览
建站之星代理如何获取技术支持?
番禺网站制作公司哪家值得合作,番禺图书馆新馆开放了吗?
建站之星ASP如何实现CMS高效搭建与安全管理?
如何在IIS中新建站点并配置端口与物理路径?
广德云建站网站建设方案与建站流程优化指南
制作网站的模板软件,网站怎么建设?
如何处理“XML格式不正确”错误 常见XML well-formed问题解决方法
建站主机类型有哪些?如何正确选型
制作假网页,招聘网的薪资待遇,会有靠谱的吗?一面试又各种折扣?
黑客如何利用漏洞与弱口令入侵网站服务器?
建站主机SSH密钥生成步骤及常见问题解答?
官网自助建站平台指南:在线制作、快速建站与模板选择全解析
为什么Go需要go mod文件_Go go mod文件作用说明
制作网站公司那家好,网络公司是做什么的?
网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?
移民网站制作流程,怎么看加拿大移民官网?
如何在Ubuntu系统下快速搭建WordPress个人网站?
安云自助建站系统如何快速提升SEO排名?
北京网页设计制作网站有哪些,继续教育自动播放怎么设置?
如何通过PHP快速构建高效问答网站功能?
php json中文编码为null的解决办法
5种Android数据存储方式汇总
成都响应式网站开发,dw怎么把手机适应页面变成网页?
如何在IIS中配置站点IP、端口及主机头?
利用JavaScript实现拖拽改变元素大小
小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?
如何快速搭建个人网站并优化SEO?
如何选择高效便捷的WAP商城建站系统?
如何快速搭建高效WAP手机网站吸引移动用户?
如何通过云梦建站系统实现SEO快速优化?
成都品牌网站制作公司,成都营业执照年报网上怎么办理?
C++中引用和指针有什么区别?(代码说明)
大连 网站制作,大连天途有线官网?
建站VPS选购需注意哪些关键参数?
开封网站制作公司,网络用语开封是什么意思?
上海制作企业网站有哪些,上海有哪些网站可以让企业免费发布招聘信息?
长沙做网站要多少钱,长沙国安网络怎么样?
*请认真填写需求信息,我们会在24小时内与您取得联系。