correction

 

In the first place your "oo" is already loaded, so it won't fire "load".

 

From: svg-developers@yahoogroups.com [mailto:svg-develop...@yahoogroups.com]
On Behalf Of Chris Peto
Sent: Donnerstag, 25. November 2010 08:51
To: svg-developers@yahoogroups.com
Subject: RE: [svg-developers] Drag more then ONE objects together or groups

 

  

Hi,

In the first place your "bar" is already loaded, so it won't fire "load".

This is the way I do it:

You have an svg with objects:

- You make mousedown/mousemove/mouseup global handlers (usually it is best
to make a rectangle in the background of the whole screen so that these will
fire)

- on mousedown you start a rect, insert in rootSVG, and on mousemove you
size it (make sure the rect is behind all objects for later click removal)

- then on mouseup you stop drawing and go through either (a javascript array
of objects that you have created or go through the DOM)

- if the tagName is what you want, i.e. rect, circle, then getBBox and see
if it fits in your rect that you just drawn

- if it fits then remove the object from its parentNode in the DOM and
append it in your group (g)

To dynamically remove objects:

- if you already have drawn your rect, then on mousedown and the object is
in the group

- then remove it from the group in the DOM and insert in back into svgRoot

To completely remove all object ( click outside your drawn rect):

- if mousedown outside your rect

- then remove all objects in your group and append then to svgRoot

- then remove your drawn rect from DOM

Hope this helps,

Chris

From: svg-developers@yahoogroups.com
<mailto:svg-developers%40yahoogroups.com>
[mailto:svg-developers@yahoogroups.com
<mailto:svg-developers%40yahoogroups.com> ]
On Behalf Of Mr Rauf
Sent: Donnerstag, 25. November 2010 07:13
To: svg-developers@yahoogroups.com <mailto:svg-developers%40yahoogroups.com>

Subject: [svg-developers] Drag more then ONE objects together or groups

I am working on a SVG web application & having a tough time figuring this
one out.

The functionality I want to achieve allows the user to draw (with the mouse)
a rectangle around objects already placed on the screen. When two or more
objects are under this drawn rectangle, they get grouped together, and then
upon mousedown (event) inside the drawn rectangle, the user can drag the
selected objects in unison.
I have been able to statically grouped elements together but am struggling
with the dynamic aspect, i.e. when the user selects the object, only then
should they be grouped together & once the the user clicks outside the drawn
box, the grouping ends & each objects again becomes independent.

here is some code.....

var far=document.getElementById("oo")
far.addEventListener("load", function (){
var svgDoc=far.contentDocument;
var svgRoot=svgDoc.documentElement;
document.getElementById("bar").onclick=function(){

var g =
svgDoc.createElementNS("http://www.w3.org/2000/svg";, "g");
g.setAttribute('id', 'group');
g.setAttribute('shape-rendering', 'inherit');
g.setAttribute('pointer-events', 'all');

var use =
svgDoc.createElementNS("http://www.w3.org/2000/svg";, "use")
use.setAttributeNS("http://www.w3.org/1999/xlink";,
"xlink:href", "#group")
use.setAttribute("id", "u")
svgRoot.appendChild(use)

var
create_bar=svgDoc.createElementNS("http://www.w3.org/2000/svg";, "rect")
create_bar.setAttribute("id", "r_bar")
create_bar.setAttribute("fill", "cream")
create_bar.setAttribute("x", "300px")
create_bar.setAttribute("y", "50px")
create_bar.setAttribute("width", "100px")
create_bar.setAttribute("height", "30px")
create_bar.setAttribute("pointer-events", "inherit")
g.appendChild(create_bar)

var cir =
svgDoc.createElementNS("http://www.w3.org/2000/svg";, "circle");
cir.setAttribute( "id","cir")
cir.setAttribute( "cx","320px")
cir.setAttribute( "cy","65px")
cir.setAttribute( "r","10px")
cir.setAttribute('fill', 'red')
cir.setAttribute('pointer-events', 'inherit')
g.appendChild(cir)

svgRoot.appendChild(g)
}
var btn_id=document.getElementById('bar2')
btn_id.onclick=function()
{
var a=svgDoc.getElementById('r_bar')
var b=svgDoc.getElementById('group')
var c=svgDoc.getElementById('cir')
var d=svgDoc.getElementById('u')

alert(a.id+".."+b.id+".."+c.id+".."+d.id)
}

},false)

[Non-text portions of this message have been removed]





[Non-text portions of this message have been removed]



------------------------------------

-----
To unsubscribe send a message to: svg-developers-unsubscr...@yahoogroups.com
-or-
visit http://groups.yahoo.com/group/svg-developers and click "edit my 
membership"
----Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/svg-developers/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/svg-developers/join
    (Yahoo! ID required)

<*> To change settings via email:
    svg-developers-dig...@yahoogroups.com 
    svg-developers-fullfeatu...@yahoogroups.com

<*> To unsubscribe from this group, send an email to:
    svg-developers-unsubscr...@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/

Reply via email to