使用Hammer.js操作svg
来源:互联网 发布:qq封号软件 编辑:程序博客网 时间:2024/04/25 07:27
hammer.js 是一个支持多手势操作的库,可以绑定dom元素,同时监听单击、双击、放缩、长按、滑动、旋转等事件。
官网地址: https://hammerjs.github.io/
在我参与的某个项目开发中,需要实现对svg图形的绘制以及各种手势操作的监听,使用 hammer.js 很大程度的提高了开发的效率。
简单的拖动dom示例代码如下:
<!DOCTYPE html><html><head> <title>hammer.js操作svg</title> <meta charset="utf-8"> <script type="text/javascript" src="hammer.js"></script></head><body> <svg id="svg" width="800" height="400" style="background: #f0f0f0;"> <circle id="circle" fill="red" r="50" cx="100" cy="100"></circle> </svg> <script type="text/javascript"> var circle = document.getElementById("circle"); //通过id获取要绑定的元素 var circleHammer = new Hammer(circle); //实例化 var circleX = 0; //用于保存移动之前的坐标 var circleY = 0; var moveX = 0; //记录移动时的坐标 var moveY = 0; circleHammer.on("panstart panmove panend", function(ev){ switch(ev.type){ case "panstart": circleX = parseInt(circle.getAttribute("cx")); circleY = parseInt(circle.getAttribute("cy")); circle.setAttribute("fill","brown"); break; case "panmove": moveX = ev.deltaX + circleX; //ev.deltaX的值是X坐标上移动的值,加上移动之前的坐标值,即为当前的坐标值 moveY = ev.deltaY + circleY; circle.setAttribute("cx",moveX); circle.setAttribute("cy",moveY); break; case "panend": circle.setAttribute("fill","red"); break; } }); </script></body></html>
效果如下图所示:
示例下载: 点击这里
0 0
- 使用Hammer.js操作svg
- hammer.js操作svg使达到平移,缩放
- hammer.js 手势操作
- svg入门:使用js去操作svg图像
- 使用JS操作SVG示例--时钟
- Hammer.js
- hammer.js
- Hammer.js
- Hammer.js
- hammer.js
- Hammer.js
- js操作svg
- js操作svg旋转
- 【插件】用hammer.js插件实现网页手势操作
- svg.js的使用
- 使用Batik操作SVG
- js操作svg整体缩放
- hammer.js教程1
- 深入理解HTTP协议
- ViewPager、Fragment、RadioButton实现顶部切换Tab页面
- mongodb中uuid和本身object id哪个性能会更好?
- 判断字符串字节数(中英文)
- ListView多布局展示bug
- 使用Hammer.js操作svg
- iOS之获取UITableViewCell中UITextField的关联方法
- There is no getter for property named 'userIds' in 'class java.lang.String'
- 对产品管理和产品设计的总结
- 第 5 章 事件响应,让网页交互
- tomcat结合nginx使用小结
- jquery提高执行效率(2)
- CXF方式实现webService接口
- Oracle学习笔记--3、基本函数的使用