#svg
#svg
Вопрос:
Я понимаю, что тег в SVG в основном используется для событий, но он мне скорее нужен, чтобы избежать необходимости повторять код, как в следующем случае:
<script>
var i=0,c1=0xf80,c2=0xf40,X,n=8; while(n) {
X=document.createElementNS("http://www.w3.org/2000/svg","text");
X.setAttribute("x",65-i); X.setAttribute("y",80 i); X.setAttribute("class","txt");
X.setAttribute("fill","#" (c1.toString(16))); X.innerHTML="e";
document.rootElement.appendChild(X);
X=document.createElementNS("http://www.w3.org/2000/svg","text");
X.setAttribute("x",90-i); X.setAttribute("y",86 i); X.setAttribute("class","txt");
X.setAttribute("fill","#" (c2.toString(16))); X.innerHTML="f";
document.rootElement.appendChild(X);
n--; i ; c1 =16; c2 =16;
}
</script>
Но если я хочу использовать SVG в качестве фонового изображения, тег по какой-то причине НЕ ВЫПОЛНЯЕТСЯ, что заставляет меня изменить приведенный выше код на что-то глупое, которое выглядит следующим образом:
<text x="65" y="80" class="txt" fill="#f80">e</text>
<text x="90" y="86" class="txt" fill="#f40">f</text>
<text x="64" y="81" class="txt" fill="#f90">e</text>
<text x="89" y="87" class="txt" fill="#f50">f</text>
<text x="63" y="82" class="txt" fill="#fa0">e</text>
<text x="88" y="88" class="txt" fill="#f60">f</text>
<text x="62" y="83" class="txt" fill="#fb0">e</text>
<text x="87" y="89" class="txt" fill="#f70">f</text>
<text x="61" y="84" class="txt" fill="#fc0">e</text>
<text x="86" y="90" class="txt" fill="#f80">f</text>
<text x="60" y="85" class="txt" fill="#fd0">e</text>
<text x="85" y="91" class="txt" fill="#f90">f</text>
<text x="59" y="86" class="txt" fill="#fe0">e</text>
<text x="84" y="92" class="txt" fill="#fa0">f</text>
<text x="58" y="87" class="txt" fill="#ff0">e</text>
<text x="83" y="93" class="txt" fill="#fb0">f</text>
Каждый, кто смотрит на приведенный выше код, может видеть, насколько глупо это повторение…
Я действительно сомневаюсь, что для выполнения довольно простой задачи нет лучшего способа сделать это.
Просто представьте себе более сложную ситуацию, мне нужно будет в конечном итоге получить тысячи строк ни за что……
Если кто-нибудь знает способ обработки повторяющихся объектов (или лучше выполнять «циклические» задачи), пожалуйста, дайте мне знать здесь.
Заранее большое спасибо.:)
Комментарии:
1. SVG не запускает скрипт, если вы отображаете его как изображение, то есть через фоновое изображение.
2. Это я видел, но есть ли другой способ (или другой способ написания сценариев) для достижения таких сложных форм для создания SVG в качестве изображения?
3. вы могли бы создать URI данных, а затем использовать его в качестве изображения.