【发布时间】:2015-12-10 16:42:06
【问题描述】:
我有一篇 RaphaelJS 论文,其中有一组包含图像和其他元素的集合。图像比纸张大,用户可以拖动它。 但是我希望拖动停止,以便图像边框永远不可见,这意味着用户不会看到白色边距。我已经尝试了几种方法,但我一直得到奇怪的结果,我无法绕过它。 我可以通过计算得到图像的左上角和图像的剩余角。感谢您的宝贵时间。
更新:我添加了一个 JSFiddle example
在示例中,我添加了一个条件,应该将左上角的短号保持在画布之外,但正如您所见,这存在很多故障和错误。
here is an image illustrating the desired result
代码:
Raphael.st.draggable = function(index) {
var me = this,
lx = 0,
ly = 0,
ox = 0,
oy = 0,
moveFnc = function(dx, dy) {
x = set.getBBox().x;
y = set.getBBox().y;
console.log(x+":"+y);
lx = dx + ox;
ly = dy + oy;
if(x+dx < 0 && y+dy < 0)//REMOVE THIS CONDITION FOR FREE DRAG
me.transform(',,320,240,'+'t' + lx + ',' + ly);
},
startFnc = function() {},
endFnc = function() {
ox = lx;
oy = ly;
};
this.drag(moveFnc, startFnc, endFnc);
};
width = 640;
height = 480;
paper = Raphael(cur_id, width, height),
image = paper.image('http://edwardtufte.com.s3.amazonaws.com/Thinking%20Eye/ParisMap.gif', 0, 0,950,805)
set = paper.set();
set.push(image);
paper.canvas.style.backgroundColor = "#FF0000"
set.draggable();
【问题讨论】:
-
我会尝试在 jsfiddle 上获得一个示例
-
@Ethan,图片怎么可能比纸还大?并且小提琴有一些错误,请检查。
-
JSFiddle 导入脚本出现问题。我已经手动添加了脚本,示例现在可以工作了,你会明白我的意思是图片大小比纸张大。 jsfiddle.net/8pzcawoy/53
标签: javascript svg raphael