Nuages:setInterval l'ajout de plusieurs éléments svg, la relativité de position x
<g id="clouds" >
<ellipse x="0" y="0" cx="100" cy="100" rx="30" ry="20" fill="white"/>
<ellipse x="0" y="0" cx="120" cy="80" rx="30" ry="20" fill="white"/>
<ellipse x="0" y="0" cx="130" cy="110" rx="30" ry="20" fill="white"/>
<ellipse x="0" y="0" cx="160" cy="100" rx="30" ry="20" fill="white"/>
<animateTransform attributeName="transform"
attributeType="XML"
type="translate"
from="0,0"
to="6000,0"
dur="30s"
repeatCount="indefinite"/>
</g>
Et ci-dessous est le javascript:
var svg = document.getElementsByTagName('svg')[0];
var xlinkns = "http://www.w3.org/1999/xlink";
function loadClouds(){
setInterval(function(){
var y = (Math.random()*1000)+200;
var use = document.createElementNS("http://www.w3.org/2000/svg", 'use');
use.setAttributeNS(xlinkns, "href", "#clouds");
use.setAttribute("transform", "scale(0.2,0.2)");
use.setAttribute("x", 0);
use.setAttribute("y", y);
svg.appendChild(use);
}, 1000);
}
Comment je l'appeler:
//Clouds
<script type="text/javascript"><![CDATA[
loadClouds();
]]></script>
Everytime une le nuage est créé en utilisant le x du nuage précédemment créé comme point de départ au lieu de commencer à 0.
Juste un tir dans le noir, mais ne sont pas sensibles à la casse x & y en svg? Essayez de définir X au lieu de x. – Zenoo
l'élément g est positionné par rapport à la situation actuelle de transformation. –