首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >raphael对象的擦除方法

raphael对象的擦除方法
EN

Stack Overflow用户
提问于 2014-07-15 09:18:26
回答 2查看 147关注 0票数 0

有没有办法为raphael对象实现擦除方法。在这种擦除方法中,我希望删除特定raphael对象的特定部分。这意味着擦除方法应该像真正的橡皮擦一样工作。在raphael文档中有一个名为Paper.clear().的方法但我们只能删除整份报纸。任何帮助都是值得感激的。

EN

回答 2

Stack Overflow用户

发布于 2014-07-15 09:30:45

通常的方法是使用remove()方法。

http://raphaeljs.com/reference.html#Element.remove

代码语言:javascript
运行
复制
element.remove();
票数 0
EN

Stack Overflow用户

发布于 2014-07-17 16:08:54

您最终可以创建一个函数,在单击时绘制与纸张背景色相同颜色的形状。类似于这段代码的东西(在文章的末尾做些改动)。它会覆盖你的内容,而不是删除它,但它会看起来像它。

代码语言:javascript
运行
复制
            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来准确显示“橡皮擦”的绘制位置。

希望对你有帮助:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24754334

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档