有没有办法为raphael对象实现擦除方法。在这种擦除方法中,我希望删除特定raphael对象的特定部分。这意味着擦除方法应该像真正的橡皮擦一样工作。在raphael文档中有一个名为Paper.clear().的方法但我们只能删除整份报纸。任何帮助都是值得感激的。
发布于 2014-07-15 09:30:45
通常的方法是使用remove()方法。
http://raphaeljs.com/reference.html#Element.remove
element.remove();发布于 2014-07-17 16:08:54
您最终可以创建一个函数,在单击时绘制与纸张背景色相同颜色的形状。类似于这段代码的东西(在文章的末尾做些改动)。它会覆盖你的内容,而不是删除它,但它会看起来像它。
var timeoutId = 0;
var cursorX;
var cursorY;
var mouseStillDown = false;
paper = Raphael("paper1","100%","100%");
paper.rect(10,10,100,100).attr({
fill : "black"
});
$("#paper1").mousemove(function(event){
cursorY=event.pageY;
cursorX=event.pageX;
});
function erase() {
if (!mouseStillDown) { return; }
paper.rect(cursorX-25,cursorY-25,50,50).attr({
fill :"white",
stroke : "white"
});
if (mouseStillDown) { setInterval("erase", 100); }
}
$("#paper1").mousedown(function(event) {
mouseStillDown = true;
erase(event.pageX,event.pageY);
});
$("#paper1").mouseup(function(event) {
mouseStillDown = false;
});在这里,每次单击时,它都会在光标位置创建一个白色矩形。
下面是代码的一个小提琴:http://jsfiddle.net/c6Xs6/
通过一些修改,您可以创建一个菜单,允许用户选择用于“擦除”的表单的大小和形状。有点像这样的东西:http://jsfiddle.net/8ABe9/
您还可以使用光标后面的div来准确显示“橡皮擦”的绘制位置。
希望对你有帮助:)
https://stackoverflow.com/questions/24754334
复制相似问题