Raphael JS:在拖动结束时触发点击
Raphael JS: Click is triggered at end of drag
以下代码的目的是仅在单击圆圈时更改圆圈颜色,而不是在拖放后鼠标向上时更改圆圈颜色。由于某些原因,Raphael在鼠标向上时触发了一个点击事件。如何预防这种情况?这是jsfield
这是HTML:
<div id="canvas"></div>
这是javascript:
Raphael.st.draggable = function() {
var me = this,
lx = 0,
ly = 0,
ox = 0,
oy = 0,
moveFnc = function(dx, dy) {
lx = dx + ox;
ly = dy + oy;
me.transform('t' + lx + ',' + ly);
},
startFnc = function() {},
endFnc = function() {
ox = lx;
oy = ly;
};
this.drag(moveFnc, startFnc, endFnc);
};
var paper = Raphael(document.getElementById('canvas'));
var mySet = paper.set();
var c = mySet.push(paper.circle(50, 50, 50).attr('fill', 'red'));
mySet.draggable();
c.click(function(evt) {
this.attr({"fill": "#2e2e2e" });
});
这是我用来拖动集合的:
http://jsfiddle.net/Margo/Q3EBw/5/paper = Raphael(0, 0, 500, 500);
var ox = 0;
var oy = 0;
var screenSet = paper.set();
screenSet.push(paper.rect(0, 0, 100, 75, 0).attr({
fill: 'red', stroke: 'none'
}));
screenSet.push(paper.text(0 , 0 ,"Text").attr({ "text-anchor": "start" }));
start = function() {
ox = this.attr("x");
oy = this.attr("y");
screenSet.attr({
opacity: 1
});
},
move = function(dx, dy) {
var att ={
x: ox + dx,
y:oy + dy
};
screenSet.attr(att);
},
up = function() {
this.attr({
opacity: .5
});
ox = 0, oy = 0;
};
screenSet.drag(move, start, up);
希望对你有帮助
相关文章:
- 从工作日结束到下一个工作日开始的完整日历JS包装时间
- 我的JS数组打印只显示结束值
- 如何在ResponsiveVoice JS中检测语音结束
- js文件的第1行出现意外的输入结束错误
- react.js每n个项目添加一个开始标签或结束标签
- 节点.js未定义:1 [语法错误:输入意外结束]
- 如何在 Angular Js 中截取数据绑定的结束
- 节点.js结束错误 zlib 后写入
- Javascript等待函数结束,包括来自node.js的异步MYSQL查询
- 节点.js Web 服务器中的结束后写入错误
- 如何开始新的速度.js只有当第一个结束时才有效果
- JS:如何更改图像引用结束值
- 未捕获的语法错误:输入时刻意外结束.min.js:7
- 图表.js折线图,如果数据相同,如何隐藏y轴开始和结束标签
- JSON Linq.js 筛选开始日期结束日期列
- Node.js / AWS Lambda 在发送 SNS 推送之前结束
- JS:使用引导日期选择器在视图模式“月”中出现结束日期问题
- 如何禁用整页的自动重新对齐行为.js当滚动在两个部分的中间之间结束时
- 正在Node.js中结束post请求
- Node.js Http服务器,readstream结束事件两次触发console.log