SVG.Js事件示例,简单绑定拖动操作
一、代码:
var draw = SVG('container').size(300, 300);
draw.style({
border: '1px solid red'
}); var group = draw.group();
var rect = draw.rect(100, 60).fill('green');
rect.radius(50);
group.add(rect);
var text = draw.text('测试按钮');
text.style({
fill: 'red',
});
text.path('M0,10 100,10').attr({
fill: 'none'
});
text.textPath().attr({
startOffset: '50%',
'text-anchor': 'middle',
'dominant-baseline': 'middle'
});
group.add(text); group.move(150, 100);
group.on('mouseenter', function () {
rect.fill('blue');
}).on('mouseleave', function () {
rect.fill('green');
}); //鼠标拖动处理
var isMove = false;
var spanX = 0;
var spanY = 0;
group.on('mousedown', function (e) {
isMove = true;
spanX = e.pageX - group.x();
spanY = e.pageY - group.y();
console.info(spanX);
}).on('mouseup', function (e) {
isMove = false;
}).on('mousemove', function (e) {
if (isMove) {
//移动等距离的group
var tempX = e.pageX - spanX;
var tempY = e.pageY - spanY;
group.move(tempX, tempY);
}
});
也可以追加触屏拖动代码:
//绑定触屏操作
group.on('touchstart', function (e) {
console.info(e);
isMove = true;
spanX = e.touches[0].pageX - group.x();
spanY = e.touches[0].pageY - group.y();
console.info(spanX);
}).on('touchend', function (e) {
isMove = false;
}).on('touchmove', function (e) {
if (isMove) {
//移动等距离的group
var tempX = e.touches[0].pageX - spanX;
var tempY = e.touches[0].pageY - spanY;
group.move(tempX, tempY);
}
});
结果:
更多:
SVG.Js事件示例,简单绑定拖动操作的更多相关文章
- JQuery 阻止js事件冒泡 阻止浏览器默认操作
//阻止事件冒泡 event.stopPropagation(); //阻止浏览器默认操作 event.preventDefault(); 代码不一定能执行,写给自己看的. 事件冒泡: <a h ...
- 移动终端学习2:触屏原生js事件及重力感应
如今智能移动设备已经渗透到人们生活的方方面面,用户数量也在不断迅速增长(市场研究机构 eMarketer 在今年初发表的趋势报告中预测,2014年至2018年,中国智能手机用户从总人口的 38.3%增 ...
- 前端技术-svg简介与snap.svg.js开源项目的使用
前言-为什么学习snap.svg.js 前阵子webAPP的技术群里有人感觉到svg+animate的形式感觉很炫,矢量图任意放大且不需要下载图片,并且在手机端效果流畅. (矢量图与位图最大的区别是, ...
- js事件之神奇的onclick
21:58 2013/7/1 <a href="#" onclick="alert(123124);" >链接</a> 意思是鼠标点击链 ...
- 基于svg.js实现对图形的拖拽、选择和编辑操作
本文主要记录如何使用 svg.js 实现对图形的拖拽,选择,图像渲染及各类形状的绘制操作. 1.关于SVG SVG 是可缩放的矢量图形,使用XML格式定义图像,可以生成对应的DOM节点,便于对单个图形 ...
- vue—你必须知道的 js数据类型 前端学习 CSS 居中 事件委托和this 让js调试更简单—console AMD && CMD 模式识别课程笔记(一) web攻击 web安全之XSS JSONP && CORS css 定位 react小结
vue—你必须知道的 目录 更多总结 猛戳这里 属性与方法 语法 计算属性 特殊属性 vue 样式绑定 vue事件处理器 表单控件绑定 父子组件通信 过渡效果 vue经验总结 javascript ...
- js事件绑定细节说明
javascript绑定事件: 经常用jQuery去写,时间长了对原生态的js事件绑定的知识会慢慢淡化或者遗忘了,必须翻出来再次总结,今天再次把js原生态事件的处理做个总结. 从最初开始,谁刚接触ja ...
- 在高德地图上用svg.js绘制简单图形
这段时间做的一个项目,需要在地图上绘制简单的图形.在学习高德地图JS API的过程中,发现高德地图提供的点.线等API并不能满足我的需求,还好它开放了自定义图层CustomLayer,官方说自定义图层 ...
- node.js零基础详细教程(4):node.js事件机制、node异步IO操作
第四章 建议学习时间3小时 课程共10章 学习方式:详细阅读,并手动实现相关代码 学习目标:此教程将教会大家 安装Node.搭建服务器.express.mysql.mongodb.编写后台业务逻辑. ...
随机推荐
- linux文本编码格式转化 字幕处理
在处理字幕的时候,linux的编码格式转换很烦. 步骤: 用python先判断 其编码,再用iconv 转编码,再用awk处理格式. file不能判断吗?file有时不准. 1.python判断编码 ...
- Stable Match
稳定婚姻问题 主要就是处理两个数组 boy[i][j] 存放第i个男的第j喜欢的女的 存的是女的编号!! girl[i][j] 存放 第i个女的对第j个男的的好感度 存的是值 然后只要 ...
- @interface注释用法
java用 @interface Annotation{ } 定义一个注解 @Annotation,一个注解是一个类. @Override,@Deprecated,@SuppressWarnings ...
- 【Ray Tracing in One Weekend 超详解】 光线追踪1-8 自定义相机设计
今天,我们来学习如何设计自定义位置的相机 ready 我们只需要了解我们之前的坐标体系,或者说是相机位置 先看效果 Chapter10:Positionable camera 这一章我们直接用概念 ...
- 2019 A类
- NLP文本相似度(TF-IDF)
本篇博文是数据挖掘部分的首篇,思路主要是先聊聊相似度的理论部分,下一篇是代码实战. 我们在比较事物时,往往会用到“不同”,“一样”,“相似”等词语,这些词语背后都涉及到一个动作——双方的比 ...
- CSDN博客栏目设置个性化
韩梦飞沙 韩亚飞 313134555@qq.com yue31313 han_meng_fei_sha ====== <a href=" http://weibo.com/23 ...
- python基础-UDP、进程、进程池、paramike模块
1 基于UDP套接字1.1 介绍 udp是无连接的,是数据报协议,先启动哪端都不会报错 udp服务端 import socket sk = socket() #创建一个服务器的套接字 sk.bind( ...
- C# SqlHerper
1.C# SqlHelper public static class SqlHelper { private static readonly string conStr = Configuration ...
- DrawFrameControl 绘制标准控件
BOOL DrawFrameControl( HDC hDC, // 设备环境句柄 LPRECT lpRect, // 矩形区域 UINT nType, // 控件 ...