2016-10-06 4 views
-1

Ich versuche, ein SVG in div über eine Javascript-Funktion zu laden, hat das div als <div class="svgicon"></div>lädt SVG über JS Funktion

gesetzt wurde ich die div class ändern kann, wenn dies ein Bild über das urlbackground ist, aber mit versuchte dies für ein SVG es nicht rendert

Ist das möglich?

Antwort

1

Was ist der Fehler? Sie sollten keine Probleme mit dem Ändern der Klasse haben. Schau dir dieses Beispiel an.

function changeSVG() { 
 
\t var div = document.getElementById('foo'); 
 
\t if (div.className == "class1") { 
 
    div.className = "class2"; 
 
    } else { 
 
    \t div.className = "class1"; 
 
    } 
 
} 
 

 
document.getElementById('btn').addEventListener('click', changeSVG);
.class1 {   
 
     background-image: url('https://dev.w3.org/SVG/tools/svgweb/samples/svg-files/410.svg'); 
 
     height: 300px; 
 
     width: 300px; 
 
     } 
 

 
     .class2 { 
 
     background-image: url('https://dev.w3.org/SVG/tools/svgweb/samples/svg-files/aa.svg'); 
 
     height: 300px; 
 
     width: 300px; 
 
     }
<div id="foo" class="class1"> 
 
    </div> 
 
    <br> 
 
    <button id="btn" type="button" > 
 
    Switch 
 
    </button>

+0

Danke, das funktioniert, scheint es, dass, wenn Sie eine animierte svg die Animation spielt nicht dynamisch ändern, man muss nur den Anfangszustand erhalten. Ich habe hier ein paar Artikel geschrieben, die das Problem beschreiben, gibt es irgendwelche Lösungen? – user1824963

+0

Hat es etwas wie 'begin = "click"'? Wenn dies der Fall ist, können Sie versuchen, den Klick programmgesteuert auszulösen oder das Ereignis, das die Animation startet. – espino316