Wrox Home  
Search P2P Archive for: Go

  Return to Index  

javascript_howto thread: How to get X & Y position of a text box.


Message #1 by "Nilesh Mahajan" <nilmans@y...> on Tue, 11 Mar 2003 09:05:13
You must insert these two functions in your code and to pass them the 
object u want to find the position of...



function findPosX(obj)
{

	var curleft = 0;
	if (document.getElementById || document.all)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (document.layers)
		curleft += obj.x;
	return curleft;
}

function findPosY(obj)
{
	var curtop = 0;
	if (document.getElementById || document.all)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (document.layers)
		curtop += obj.y;
	return curtop;
}



next is a short example to show you how it  works:



<html>
<head>
<title>Document Title</title>
<script type="text/javascript">
function findPosX(obj)
{

	var curleft = 0;
	if (document.getElementById || document.all)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (document.layers)
		curleft += obj.x;
	return curleft;
}

function findPosY(obj)
{
	var curtop = 0;
	if (document.getElementById || document.all)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (document.layers)
		curtop += obj.y;
	return curtop;
}

function getIt(el){
	alert('X = ' + findPosX(el) + '\nY = ' + findPosY(el) );
}

</script>
</HEAD>
<body>
<table border="4">
<tr>
	<td onclick="getIt(this)">&nbsp;</td>
	<td onclick="getIt(this)">&nbsp;</td>
	<td onclick="getIt(this)">&nbsp;</td>
	<td onclick="getIt(this)">&nbsp;</td>
</tr>
<tr>
	<td>&nbsp;</td>
	<td>&nbsp;</td>
	<td>&nbsp;</td>
	<td>&nbsp;</td>
</tr>
<tr>
	<td onclick="getIt(this)">&nbsp;</td>
	<td onclick="getIt(this)">&nbsp;</td>
	<td onclick="getIt(this)">&nbsp;</td>
	<td onclick="getIt(this)">&nbsp;</td>
</tr>
</table>
<p><textarea cols="10" onclick="getIt(this)"></textarea></p>
</body>
</html>

Enjoy! :-))

  Return to Index