Get Relative Position Between 2 Dom Elements Using Javascript
I've implemented a set of draggable elements that can be dropped into some containers using jQuery. What I need is an animation that moves an element to a specific container withou
Solution 1:
I never used jQuery, just looked up API, so I can assume you can do the following:
var o1 = $(element1).offset(); var o2 = $(element2).offset(); var dx = o1.left - o2.left; var dy = o1.top - o2.top; var distance = Math.sqrt(dx * dx + dy * dy);
Solution 2:
Using pure javascript.
var dx = obj1.offsetLeft - obj2.offsetLeft;
var dy = obj1.offsetTop - obj2.offsetTop;
var distance = Math.sqrt(Math.pow(dx,2) + Math.pow(dy,2));
Solution 3:
What about the following?
var isIE = navigator.appName.indexOf("Microsoft") != -1;
functiongetDistance(obj1, obj2){
var obj1 = document.getElementById(obj1);
var obj2 = document.getElementById(obj2);
var pos1 = getRelativePos(obj1);
var pos2 = getRelativePos(obj2);
var dx = pos1.offsetLeft - pos2.offsetLeft;
var dy = pos1.offsetTop - pos2.offsetTop;
return {x:dx, y:dy};
}
functiongetRelativePos(obj){
var pos = {offsetLeft:0,offsetTop:0};
while(obj!=null){
pos.offsetLeft += obj.offsetLeft;
pos.offsetTop += obj.offsetTop;
obj = isIE ? obj.parentElement : obj.offsetParent;
}
return pos;
}
//var obj = getDistance("element1","element2")
alert(obj.x+" | "+obj.y);
Post a Comment for "Get Relative Position Between 2 Dom Elements Using Javascript"