Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Snap.svg的多个实例导致损坏_Javascript_Html_Svg_Snap.svg - Fatal编程技术网

Javascript Snap.svg的多个实例导致损坏

Javascript Snap.svg的多个实例导致损坏,javascript,html,svg,snap.svg,Javascript,Html,Svg,Snap.svg,我希望在一个网页上显示几个SVG,每个SVG都在一个单独的DOM元素中,我正在加载这些元素,然后使用Snap.SVG(v0.5.1)进行操作。SVG是在Illustrator中创建的 页面上的单个svg按预期加载并设置动画。但是,当尝试加载多个SVG时,至少有一个SVG会出现小的损坏。我怀疑我使用的Snap不正确,但在同一页面上找不到将其加载到单独DOM元素的示例 var s=Snap(".dom-element"); Snap.load("my-pic1.svg", onSVGLo

我希望在一个网页上显示几个SVG,每个SVG都在一个单独的DOM元素中,我正在加载这些元素,然后使用Snap.SVG(v0.5.1)进行操作。SVG是在Illustrator中创建的

页面上的单个svg按预期加载并设置动画。但是,当尝试加载多个SVG时,至少有一个SVG会出现小的损坏。我怀疑我使用的Snap不正确,但在同一页面上找不到将其加载到单独DOM元素的示例

   var s=Snap(".dom-element");
   Snap.load("my-pic1.svg", onSVGLoaded );
   function onSVGLoaded( data ){ 
      s.append( data );
      //do something
   }

   var s2=Snap(".dom-element2");
   Snap.load("my-pic2.svg", onSVGLoaded2 );
   function onSVGLoaded2( data ){ 
       s2.append( data );
       //do something
    }

    var s3=Snap(".dom-element3");
    Snap.load("my-pic3.svg", onSVGLoaded3 );
    function onSVGLoaded3( data ){ 
        s3.append( data );
        //do something
    }

是否有另一种方法可以将多个svg加载到单个元素中,而无需每次调用Snap的新实例(如果这是问题所在)?

svg文件是否具有重复的id值?所有ID必须是唯一的。如果您将所有3个SVG加载到同一个文档中,那么即使在这些文件中也不能有重复。您的评论解决了我的问题。虽然它不是id,但Illustrator为每个SVG命名的类都是相同的,因此相互冲突。Illustrator需要一种在导出SVG时向类添加后缀的方法。感谢您的帮助。SVG文件是否具有重复的id值?所有ID必须是唯一的。如果您将所有3个SVG加载到同一个文档中,那么即使在这些文件中也不能有重复。您的评论解决了我的问题。虽然它不是id,但Illustrator为每个SVG命名的类都是相同的,因此相互冲突。Illustrator需要一种在导出SVG时向类添加后缀的方法。谢谢你的帮助。