<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DZone Snippets: colours code</title>
    <link>http://snippets.dzone.com/posts</link>
    <pubDate>Sun, 18 May 2008 00:05:59 GMT</pubDate>
    <description>DZone Snippets: colours code</description>
    <item>
      <title>Create and drag circles in SVG</title>
      <link>http://snippets.dzone.com/posts/show/5268</link>
      <description>Demonstrates creating creating and dragging circles using SVG and ECMAScript.&lt;br /&gt;&lt;br /&gt;Tested on Firefox 3 beta 4.&lt;br /&gt;&lt;br /&gt;file: makeDragDrop.svg&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;svg	xmlns="http://www.w3.org/2000/svg" width="100%"&lt;br /&gt;		xmlns:xlink="http://www.w3.org/1999/xlink" &gt;&lt;br /&gt;&lt;script&gt;&lt;![CDATA[&lt;br /&gt;var	xmlns="http://www.w3.org/2000/svg"&lt;br /&gt;	xlink="http://www.w3.org/1999/xlink" &lt;br /&gt;	Root=document.documentElement&lt;br /&gt;standardize(Root)&lt;br /&gt;&lt;br /&gt;function standardize(R){&lt;br /&gt;	var Attr={&lt;br /&gt;		"onmouseup":"add(evt)",&lt;br /&gt;		"onmousedown":"grab(evt)",&lt;br /&gt;		"onmousemove":null,&lt;br /&gt;		"onmouseover":"hilight(evt)",&lt;br /&gt;		"onmouseout":"hilight(evt)"&lt;br /&gt;	}&lt;br /&gt;	assignAttr(R,Attr)&lt;br /&gt;}&lt;br /&gt;function hilight(evt){&lt;br /&gt;	var T=evt.target&lt;br /&gt;	if (T.nodeName=="rect") return&lt;br /&gt;	if (evt.type=="mouseover") T.setAttributeNS(null,"stroke-opacity",1)&lt;br /&gt;	else T.setAttributeNS(null,"stroke-opacity",.5)&lt;br /&gt;}&lt;br /&gt;function add(evt){&lt;br /&gt;	if (evt.target.nodeName!="rect") return&lt;br /&gt;	var C=document.createElementNS(xmlns,"circle") &lt;br /&gt;	var stroke=Color()&lt;br /&gt;	var rad=10+Math.random()*50&lt;br /&gt;	var Attr={&lt;br /&gt;		r:rad,&lt;br /&gt;		cx:evt.clientX,&lt;br /&gt;		cy:evt.clientY,&lt;br /&gt;		"fill": Color(),&lt;br /&gt;		"fill-opacity":.75,&lt;br /&gt;		"stroke": stroke,&lt;br /&gt;		"stroke-opacity":.5,&lt;br /&gt;		"id":stroke,&lt;br /&gt;		"stroke-width":10+Math.random()*(55-rad)&lt;br /&gt;	}&lt;br /&gt;	assignAttr(C,Attr)&lt;br /&gt;	Root.appendChild(C)&lt;br /&gt;}&lt;br /&gt;function grab(evt){&lt;br /&gt;	var O=evt.target&lt;br /&gt;	if (evt.target.nodeName=="rect") return&lt;br /&gt;	var Attr={&lt;br /&gt;		"onmousemove":"slide(evt,'"+O.id+"')",&lt;br /&gt;		"onmouseup":"standardize(Root)"&lt;br /&gt;	}&lt;br /&gt;	assignAttr(Root,Attr)&lt;br /&gt;}&lt;br /&gt;function slide(evt,id){&lt;br /&gt;	var o=document.getElementById(id)&lt;br /&gt;	var c=""; if (o.nodeName=="circle") c="c"&lt;br /&gt;	o.setAttributeNS(null, c+"x", evt.clientX)&lt;br /&gt;	o.setAttributeNS(null, c+"y", evt.clientY)&lt;br /&gt;}&lt;br /&gt;function assignAttr(O,A){&lt;br /&gt;	for (i in A) O.setAttributeNS(null,i, A[i])&lt;br /&gt;}&lt;br /&gt;function Color(){&lt;br /&gt;	return "rgb("+parseInt(Math.random()*255)+","+parseInt(Math.random()*255)+","+parseInt(Math.random()*255)+")"&lt;br /&gt;}&lt;br /&gt;]]&gt;&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;&lt;rect width="100%" height="100%" fill="white"/&gt;&lt;br /&gt;&lt;text font-size="12pt" x="50" y="20" id="t1"&gt;Click something to move it&lt;/text&gt;&lt;br /&gt;&lt;text font-size="12pt" x="80" y="40" id="t2"&gt;Click nothing to add something&lt;/text&gt;&lt;br /&gt;&lt;/svg&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Source file copied from &lt;a href="http://srufaculty.sru.edu/david.dailey/svg/makeDragDrop.svg"&gt;http://srufaculty.sru.edu/david.dailey/svg/makeDragDrop.svg&lt;/a&gt;&lt;br /&gt;</description>
      <pubDate>Sat, 22 Mar 2008 00:30:36 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/5268</guid>
      <author>jrobertson (James Robertson)</author>
    </item>
  </channel>
</rss>
