【发布时间】:2014-03-15 00:18:12
【问题描述】:
我想了解如何向 Raphael.js 对象/路径添加边缘模糊的阴影。据我所知,图书馆不可能按原样使用,但有解决办法吗?
【问题讨论】:
标签: javascript svg raphael
我想了解如何向 Raphael.js 对象/路径添加边缘模糊的阴影。据我所知,图书馆不可能按原样使用,但有解决办法吗?
【问题讨论】:
标签: javascript svg raphael
您可以使用Element.glow([glow]) 来获得阴影效果。 http://raphaeljs.com/reference.html#Element.glow
【讨论】:
根据 OP 的要求,在单独的答案中添加指向 Raphael.blur 的链接。
http://github.com/DmitryBaranovskiy/raphael/blob/master/plugins/raphael.blur.js
更新的代码示例:
var shadow = canvas.path(p);
shadow.attr({stroke: "none", fill: "#555", translation: "4,4"});
shadow.blur(4);
var shape = canvas.path(p);
请注意,在 Dmitry 的 cmets 中,他提到不支持 WebKit。他使用<filter> 元素和feGaussianBlur 滤镜效果。 WebKit 已经实现了 feGaussianBlur 效果,但是过滤器是unstable 并且在 Safari 中被禁用(它可能在 Chrome 5 中工作 - 在 Chrome 6 中肯定可以工作)。
【讨论】:
.blur 函数是否未记录?在 Raphael 文档的任何地方都找不到它。还是原生的?
我编写了一个插件,它通过对元素应用 SVG 过滤器来为其添加阴影。 它基于模糊插件。
【讨论】:
最简单的方法是用阴影色填充绘制对象,偏移几个像素,然后在顶部绘制实际对象。
var shadow = canvas.path(p);
shadow.attr({stroke: "none", fill: "#555", translation: "4,4"});
var shape = canvas.path(p);
如果需要,您还可以调整不透明度属性。
【讨论】:
【讨论】: