HTML5 [1] |
CSS3 [1] |
JavaScript [3] |
JS in HTML5 [4] |
Canvas (Context2D) [1] |
Canvas (WebGL) [0] |
Browser Technologies [2] |
jQuery [1] |
ExtJS [0] |
Prototype.js [2] |
SVG [2] |
Browsers [2] |
Mozilla Plugins
[0]
XUL, Jetpack, etc.
|
Web [2] |
MeowW [4] |
iOS [0] |
Алгоритмы [0] |
Криптография [0] |
Теория игр [0] |
Теория вероятностей [0] |
Математика [1] |
Мат. анализ [0] |
Алгебра [0] |
Дискретная математика [0] |
Теория графов [0] |
Комбинаторика [0] |
Теория чисел [0] |
Комплексный анализ [0] |
Матлогика
[0]
Математическая логика, её связь с теорией алгоритмов и т.п.
|
Тензоры [0] |
Геометрия [0] |
Топология [0] |
Дифференциальная геометрия [0] |
Дифференциальные уравнения [0] |
23 Июня 2011 в 23:45:25
19:17:35 Фигуры в SVG |
ВспоминаемПродолжаем изучать SVG. На этот раз у нас - простые фигуры. То бишь примитивы.
Code <rect x="10" y="10" width="300" height="200" /> Code <circle cx="300" cy="300" r="100" /> Code <ellipse cx="300" cy="300" rx="150" ry="100" /> Code <line x1="10" y1="10" x2="40" y2="40" stroke="black"/> Code <polyline points="10,10 100,200 100,102" fill="red" stroke="blue"/> Code <polygon points="10,10 100,200 100,102" fill="red" stroke="blue" stroke-width="3"/> Code <rect x="10" y="10" width="200" height="200" fill="#fcc" stroke="#aaf"/> ПрактикаНемножко поизучали, теперь давайте и интересное что-нить нарисуем. И скриптов! Скриптов побольше. Code <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <svg width="2000" height="1000" xmlns="http://www.w3.org/2000/svg" version="1.1"> <circle cx="190" cy="190" r="100" fill="#aaf"/> <rect x="10" y="10" width="200" height="200" fill="#fcc" stroke="#aaf" stroke-width="3"/> <circle cx="200" cy="200" r="100" fill="#fcc"/> <script> var fnc=function(e){ document.getElementsByTagName('rect')[0].setAttribute('fill', '#fdd'); document.getElementsByTagName('circle')[1].setAttribute('fill', '#fdd'); } var fnc2=function(e){ document.getElementsByTagName('rect')[0].setAttribute('fill', '#fcc'); document.getElementsByTagName('circle')[1].setAttribute('fill', '#fcc'); } var fnc3=function(e){ document.getElementsByTagName('rect')[0].setAttribute('fill', '#fbb'); document.getElementsByTagName('circle')[1].setAttribute('fill', '#fbb'); } document.getElementsByTagName('rect')[0].addEventListener('mouseover', fnc, false); document.getElementsByTagName('circle')[1].addEventListener('mouseover', fnc, false); document.getElementsByTagName('rect')[0].addEventListener('mouseout', fnc2, false); document.getElementsByTagName('circle')[1].addEventListener('mouseout', fnc2, false); document.getElementsByTagName('rect')[0].addEventListener('mousedown', fnc3, false); document.getElementsByTagName('circle')[1].addEventListener('mousedown', fnc3, false); document.getElementsByTagName('rect')[0].addEventListener('mouseup', fnc, false); document.getElementsByTagName('circle')[1].addEventListener('mouseup', fnc, false); </script> </svg> Z-indexЕсть один момент. Фигуры могут накладываться друг на друга. В данном случае каждая фигура позиционируется как position:absolute в html-документе и с z-index:auto. То есть, каждая новая фигура распологается поверх всех ранее созданных. Группы элементовТакже в svg есть тег групп - <g> (от англ. group). Мы можем поместить туда любые элементы. А css-стили группы наследуются для всех её элементов. Да, CSS! Он есть и в SVG. Впрочем, это уже другая статья. |
|
Всего комментариев: 1 | |
| |