0

我将一个 .svg 文件导入 raphael,我希望能够更改形状的填充颜色和描边颜色。

my_set = my_paper.importSVG( my_svgXML ) ;

for( var i = 0 ; i < my_set.length ; i++ )
  { var lvo_element  = my_set[ i ] ; 
    lvo_element.attr( { 'fill'    :  '#fafafa' } ) ;

    console.log( lvo_element.attrs.fill ) ; 
    // correctly outputs  '#fafafa'  
  }

...但是元素的颜色没有更新。但是, lvo_element.glow() 确实有效。


编辑: fabricjs 需要在任何属性更改后调用 .renderAll() ......但我在 raphael 文档中看不到任何与此相似的内容,例如“更新”


笔记:

  • 我使用 jquery.ajax 将 my.svg 加载到应用程序中

  • 我使用 raphael-svg-import.js 将其导入 raphael

  • 我也尝试过非对象表示法: lvo_element.attr('fill', '#fafafa' ) ;

4

1 回答 1

0

从 CorelDesignerX5 导出到 .svg 时,有一个样式选项下拉框,默认为内部样式表。因此,这会在导出的 svg 中创建一个内部样式表,这只会导致各种问题,至少在 raphael 库中是这样。

将样式选项更改为Presentation Attributes

于 2013-09-13T09:13:15.633 回答