Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   JS и SVG-интерфейсы (https://javascript.ru/forum/events/14079-js-i-svg-interfejjsy.html)

Leopard 28.12.2010 10:54

JS и SVG-интерфейсы
 
Добрый день! У меня вот какой вопрос. Я недавно познакомился в общих чертах с SVG, и пытаюсь сделать следующее:
<svg:svg id="canvas" svg:width="2cm" height="200">
<!-- Получить значение атрибута svg:width и преобразовать в стандартные единицы (то есть без cm) -->
<svg:polyline points="2 2 200 200" stroke="blue"/>
</svg:svg>


Это можно сделать и стандартными, распространенными средствами JS, например:
var canvas = document.getElementById('canvas');
var s = canvas.getAttribute('height');
//потом парсим эту строку и пишем огромный switch для 
//всех девяти вариантов единиц измерения(cm,mm,%,in 
//и т.д.)


Но есть как бы более изящное решение - встроенные средства SVG. Ссылка на спецификацию тут. По идее, есть такой объект SVGLength и у него есть такие замечательные методы. Но как его создать, я там не нашел. Помогите, кто знает

Questioner 19.08.2011 11:43

<svg>
<rect x=10 y=10 width=100 height=40 id='g' onmousemove='f(this)'/>
<foreignObject>
<script>
function f(g) {
alert(g+';\n'+g.x.animVal+';\n'+g.x.baseVal)
}
</script>
</foreignObject>
</svg>

В спецификации я ни фига не понял, можешь объяснить?


Часовой пояс GMT +3, время: 14:38.