【发布时间】:2014-04-26 11:55:58
【问题描述】:
注意:下面的小提琴/代码在 Raphael 1.5.2 中按要求工作,但在 Raphael 2.1.0 中失败。
我想在 Raphael 2 中创建一条线,它由矩形上的 mousedown 事件启动,并在纸上任何位置的 mouseup 时终止。下面的小提琴适用于 Raphael 1.5.2(在 Chrome 中)。
function Line(endX, endY, thisPaper) {
var end = { x: endX, y: endY };
var getPath = function() { return "M 15 15 L" + end.x + " " + end.y; };
var thisLine = thisPaper.path(getPath());
var redraw = function() { thisLine.attr("path", getPath()); }
return { updateEnd: function(x, y) { end.x = x; end.y = y; redraw(); } };
};
var paper = Raphael("my-canvas",0, 0, 300, 400);
var origin = paper.rect(10, 10, 10, 10).attr({fill: "white"});
origin.mousedown(function(e) {
line = Line(e.offsetX, e.offsetY, paper);
$("#my-canvas").bind('mousemove', function(e) {line.updateEnd(e.offsetX, e.offsetY);
});
});
$("#my-canvas").mouseup(function(e) { $("#my-canvas").unbind('mousemove'); });
在运行 Raphael 2.1.0 时,JavaScript 控制台会产生以下错误:
- body.scrollTop 在严格模式下已弃用。请在严格模式下使用“documentElement.scrollTop”,仅在怪癖模式下使用“body.scrollTop”。
- body.scrollLeft 在严格模式下已弃用。请在严格模式下使用“documentElement.scrollLeft”,仅在怪癖模式下使用“body.scrollLeft”。
需要进行哪些修改才能在 Raphael 2.1.0 中像在 1.5.2 中一样运行?请注意,您可以在JSFiddle 中轻松地在这两个版本之间切换。
【问题讨论】:
-
嘿 DarMontou,欢迎来到 StackOverflow。请参考具体问题,因为问题应该集中在具体问题上,而不是寻求一般帮助。
-
嘿伊莱兰,谢谢。是否足够具体地询问为什么此代码在 Raphael 1.5.2 而不是 Raphael 2.1.0 中有效?
-
肯定会的。它还将有助于详细说明您尝试解决它的尝试,和/或尝试找出问题(例如,您在 javascript 控制台上是否有任何错误?)。
-
谢谢。我添加了有关版本控制问题的更多详细信息,并包含了 JavaScript 控制台错误。
标签: javascript svg raphael