当前位置:  开发笔记 > 编程语言 > 正文

如何用Raphael创建渐变对象

如何解决《如何用Raphael创建渐变对象》经验,为你挑选了2个好方法。

我试图使用Raphael JS图形库.我想使用属性梯度,它应该接受一个对象.文档说参考SVG规范.例如,我在SVG中找到了渐变对象





但我如何从我的JavaScript中引用它?

circle.attr("gradient", "myFillGrad"); 

不起作用:)提前谢谢



1> Nathan de Vr..:

更新:重写最新的Raphael API:




  
  Linear Gradient
  


  


attr()可以在此处找到新API 的文档.



2> lafncow..:

我不相信当前的raphael API允许你设置除最后一个之外的单个停止不透明度,它被赋予传递给"不透明度"attr的值,例如:

this.ellipse(x, y, r, r).attr({stroke: "none", fill: "r(.5,.1)#ccc-#ccc", opacity: 0})

...最后一站的停止不透明度为0.为了更细粒度的控制,我将这个"case"添加到我的raphael.js中的属性解析开关中:

 case "opacityStops":
                            if (attrs.gradient) {
                                var gradient = doc.getElementById(node.getAttribute(fillString)[rp](/^url\(#|\)$/g, E));
                                if (gradient) {
                                    var stops = gradient.getElementsByTagName("stop");
                                    var opacs=value.split("-");
                                    for(var ii=0;ii

您还必须在"availableAttrs"对象中添加相应的条目,例如:

availableAttrs = {..., opacityStops:"1"}

创建一个具有不同不透明度的径向渐变的圆圈的调用将如下所示:

this.ellipse(x, y, r, r).attr({stroke: "none", fill: "r(.5,.5)#fff-#fff:70-#000", "opacityStops": "1-0-0.6"}

推荐阅读
女女的家_747
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有