Вход

Просмотр полной версии : JS и SVG-интерфейсы


Leopard
28.12.2010, 10:54
Добрый день! У меня вот какой вопрос. Я недавно познакомился в общих чертах с 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. Ссылка на спецификацию тут (http://www.w3.org/TR/2010/WD-SVG11-20100622/types.html#InterfaceSVGLength). По идее, есть такой объект 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>

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