diff options
Diffstat (limited to 'javascript/kruse/AnchorPosition.js')
| -rw-r--r-- | javascript/kruse/AnchorPosition.js | 147 |
1 files changed, 0 insertions, 147 deletions
diff --git a/javascript/kruse/AnchorPosition.js b/javascript/kruse/AnchorPosition.js deleted file mode 100644 index 7db0cc8..0000000 --- a/javascript/kruse/AnchorPosition.js +++ /dev/null @@ -1,147 +0,0 @@ -// =================================================================== -// Author: Matt Kruse <matt@mattkruse.com> -// WWW: http://www.mattkruse.com/ -// -// NOTICE: You may use this code for any purpose, commercial or -// private, without any further permission from the author. You may -// remove this notice from your final code if you wish, however it is -// appreciated by the author if at least my web site address is kept. -// -// You may *NOT* re-distribute this code in any way except through its -// use. That means, you can include it in your product, or your web -// site, or any other form where the code is actually being used. You -// may not put the plain javascript up on your site for download or -// include it in your javascript libraries for download. -// If you wish to share this code with others, please just point them -// to the URL instead. -// Please DO NOT link directly to my .js files from your site. Copy -// the files to your server and use them there. Thank you. -// =================================================================== - -/* -AnchorPosition.js -Author: Matt Kruse -Last modified: 10/11/02 - -DESCRIPTION: These functions find the position of an <A> tag in a document, -so other elements can be positioned relative to it. - -COMPATABILITY: Netscape 4.x,6.x,Mozilla, IE 5.x,6.x on Windows. Some small -positioning errors - usually with Window positioning - occur on the -Macintosh platform. - -FUNCTIONS: -getAnchorPosition(anchorname) - Returns an Object() having .x and .y properties of the pixel coordinates - of the upper-left corner of the anchor. Position is relative to the PAGE. - -getAnchorWindowPosition(anchorname) - Returns an Object() having .x and .y properties of the pixel coordinates - of the upper-left corner of the anchor, relative to the WHOLE SCREEN. - -NOTES: - -1) For popping up separate browser windows, use getAnchorWindowPosition. - Otherwise, use getAnchorPosition - -2) Your anchor tag MUST contain both NAME and ID attributes which are the - same. For example: - <A NAME="test" ID="test"> </A> - -3) There must be at least a space between <A> </A> for IE5.5 to see the - anchor tag correctly. Do not do <A></A> with no space. -*/ - -// getAnchorPosition(anchorname) -// This function returns an object having .x and .y properties which are the coordinates -// of the named anchor, relative to the page. -function getAnchorPosition(anchorname) { - // This function will return an Object with x and y properties - var useWindow=false; - var coordinates=new Object(); - var x=0,y=0; - // Browser capability sniffing - var use_gebi=false, use_css=false, use_layers=false; - if (document.getElementById) { use_gebi=true; } - else if (document.all) { use_css=true; } - else if (document.layers) { use_layers=true; } - // Logic to find position - if (use_gebi && document.all) { - x=AnchorPosition_getPageOffsetLeft(document.all[anchorname]); - y=AnchorPosition_getPageOffsetTop(document.all[anchorname]); - } - else if (use_gebi) { - var o=document.getElementById(anchorname); - x=AnchorPosition_getPageOffsetLeft(o); - y=AnchorPosition_getPageOffsetTop(o); - } - else if (use_css) { - x=AnchorPosition_getPageOffsetLeft(document.all[anchorname]); - y=AnchorPosition_getPageOffsetTop(document.all[anchorname]); - } - else if (use_layers) { - var found=0; - for (var i=0; i<document.anchors.length; i++) { - if (document.anchors[i].name==anchorname) { found=1; break; } - } - if (found==0) { - coordinates.x=0; coordinates.y=0; return coordinates; - } - x=document.anchors[i].x; - y=document.anchors[i].y; - } - else { - coordinates.x=0; coordinates.y=0; return coordinates; - } - coordinates.x=x; - coordinates.y=y; - return coordinates; - } - -// getAnchorWindowPosition(anchorname) -// This function returns an object having .x and .y properties which are the coordinates -// of the named anchor, relative to the window -function getAnchorWindowPosition(anchorname) { - var coordinates=getAnchorPosition(anchorname); - var x=0; - var y=0; - if (document.getElementById) { - if (isNaN(window.screenX)) { - x=coordinates.x-document.body.scrollLeft+window.screenLeft; - y=coordinates.y-document.body.scrollTop+window.screenTop; - } - else { - x=coordinates.x+window.screenX+(window.outerWidth-window.innerWidth)-window.pageXOffset; - y=coordinates.y+window.screenY+(window.outerHeight-24-window.innerHeight)-window.pageYOffset; - } - } - else if (document.all) { - x=coordinates.x-document.body.scrollLeft+window.screenLeft; - y=coordinates.y-document.body.scrollTop+window.screenTop; - } - else if (document.layers) { - x=coordinates.x+window.screenX+(window.outerWidth-window.innerWidth)-window.pageXOffset; - y=coordinates.y+window.screenY+(window.outerHeight-24-window.innerHeight)-window.pageYOffset; - } - coordinates.x=x; - coordinates.y=y; - return coordinates; - } - -// Functions for IE to get position of an object -function AnchorPosition_getPageOffsetLeft (el) { - var ol=el.offsetLeft; - while ((el=el.offsetParent) != null) { ol += el.offsetLeft; } - return ol; - } -function AnchorPosition_getWindowOffsetLeft (el) { - return AnchorPosition_getPageOffsetLeft(el)-document.body.scrollLeft; - } -function AnchorPosition_getPageOffsetTop (el) { - var ot=el.offsetTop; - while((el=el.offsetParent) != null) { ot += el.offsetTop; } - return ot; - } -function AnchorPosition_getWindowOffsetTop (el) { - return AnchorPosition_getPageOffsetTop(el)-document.body.scrollTop; - } |
