<html>
<script language="JavaScript">
<!--
var s = 0;
function show()
{
if(s % 2 == 0)
{
document.all.menu.style.display = '';
document.all.menu.style.left = event.x;
document.all.menu.style.top = event.y;
}
else
{
document.all.menu.style.display = 'none';
}
s +=1;
}//-->
</script>
<body>
<div id="menu" style="position:absolute;left:0px;top:0px;display:none">
<p>menuitem1</p>
<p>menuitem2</p>
<p>menuitem3</p>
</div>
<table width="500" border="1" cellspacing="0" cellpadding="0">
<tr>
<td colspan="2">
<p>
这里的文字可能会比较多,一行一行的逐渐拉长<br>
这里的文字可能会比较多,一行一行的逐渐拉长<br>
这里的文字可能会比较多,一行一行的逐渐拉长<br>
这里的文字可能会比较多,一行一行的逐渐拉长<br>
这里的文字可能会比较多,一行一行的逐渐拉长
</p>
</td>
</tr>
<tr>
<td width="50%"> </td>
<td width="50%" height="50" valign="bottom"><span style="cursor:hand;" id="sp" onclick="show()">点击当前文字则出现菜单</span></td>
</tr>
</table>
</body>
</html>
<script language="JavaScript">
<!--
var s = 0;
function show()
{
if(s % 2 == 0)
{
document.all.menu.style.display = '';
document.all.menu.style.left = event.x;
document.all.menu.style.top = event.y;
}
else
{
document.all.menu.style.display = 'none';
}
s +=1;
}//-->
</script>
<body>
<div id="menu" style="position:absolute;left:0px;top:0px;display:none">
<p>menuitem1</p>
<p>menuitem2</p>
<p>menuitem3</p>
</div>
<table width="500" border="1" cellspacing="0" cellpadding="0">
<tr>
<td colspan="2">
<p>
这里的文字可能会比较多,一行一行的逐渐拉长<br>
这里的文字可能会比较多,一行一行的逐渐拉长<br>
这里的文字可能会比较多,一行一行的逐渐拉长<br>
这里的文字可能会比较多,一行一行的逐渐拉长<br>
这里的文字可能会比较多,一行一行的逐渐拉长
</p>
</td>
</tr>
<tr>
<td width="50%"> </td>
<td width="50%" height="50" valign="bottom"><span style="cursor:hand;" id="sp" onclick="show()">点击当前文字则出现菜单</span></td>
</tr>
</table>
</body>
</html>
解决方案 »
- 对这段代码不明白,请指教。
- 传入一对象,如何判断是什么类型的对象?注:typeof不好使
- 现在我要在b页面上按一个按钮要回到a页面上完成一个功能,请问,如何定位,回到a页面
- 请问哪位有用javascript实现的WAP浏览器源代码??
- 在xsl文件中,用javascript实现数据过滤显示!急啊,在线等!谢谢
- 使用iscroll滑动区域内的div onclick事件单击一次触发了两次
- 关于两个文本框值修改的问题啊,大家帮帮忙啊。
- javascript如何得到浏览器地址栏输入的内容
- 请问:如何在点击事件中切换图片?
- 如何引用ModalDialog中的表单域的值
- 如何获取图片在网页上的位置??
- asp中replace的作用
document.all.menu.style.top = event.y;
问题出在取的是当前鼠标点击的位置,我是想以当前文字所在的单元格的位置下方出现
<script language="JavaScript">
<!--var s = 0;function getoffset(e)
{
var t=e.offsetTop;
var l=e.offsetLeft;
while(e=e.offsetParent)
{
t+=e.offsetTop;
l+=e.offsetLeft;
}
var rec = new Array(1);
rec[0] = t;
rec[1] = l; return rec
} function show(obj)
{
if(s % 2 == 0)
{
var a = getoffset(obj); document.all.menu.style.display = '';
document.all.menu.style.left = a[1];
document.all.menu.style.top = a[0] + obj.offsetHeight;
}
else
{
document.all.menu.style.display = 'none';
}
s +=1;
}//-->
</script>
<body>
<div id="menu" style="position:absolute;left:0px;top:0px;display:none">
<p>menuitem1</p>
<p>menuitem2</p>
<p>menuitem3</p>
</div>
<table width="500" border="1" cellspacing="0" cellpadding="0">
<tr>
<td colspan="2">
<p>
这里的文字可能会比较多,一行一行的逐渐拉长<br>
这里的文字可能会比较多,一行一行的逐渐拉长<br>
这里的文字可能会比较多,一行一行的逐渐拉长<br>
这里的文字可能会比较多,一行一行的逐渐拉长<br>
这里的文字可能会比较多,一行一行的逐渐拉长
</p>
</td>
</tr>
<tr>
<td width="50%"> </td>
<td width="50%" height="50" valign="bottom"><span style="cursor:hand;" id="sp" onclick="show(this)">点击当前文字则出现菜单</span></td>
</tr>
</table>
</body>
</html>
<body>
<div id="menu">
<p>menuitem1</p>
<p>menuitem2</p>
<p>menuitem3</p>
</div>
<table width="500" border="1" cellspacing="0" cellpadding="0">
<tr>
<td colspan="2">
<p onclick="changeMenuDivPosition(this);">
这里的文字可能会比较多,一行一行的逐渐拉长<br>
这里的文字可能会比较多,一行一行的逐渐拉长<br>
这里的文字可能会比较多,一行一行的逐渐拉长<br>
这里的文字可能会比较多,一行一行的逐渐拉长<br>
这里的文字可能会比较多,一行一行的逐渐拉长
</p>
</td>
</tr>
<tr>
<td width="50%" onclick="changeMenuDivPosition(this);"> dddd</td>
<td width="50%" height="50" valign="bottom"><span style="cursor:hand;" id="sp" onclick="changeMenuDivPosition(this);">点击当前文字则出现菜单</span></td>
</tr>
</table><div id=menuDiv style="background-color:cccccc;width:300;height:200;position:absolute;z-index:10;">菜单层</div>
</body>
</html>
<script language=javascript >
function changeMenuDivPosition(obj)
{
menuDiv.style.top=getOffsetTopToBody(obj)+obj.offsetHeight;
menuDiv.style.left=getOffsetLeftToBody(obj);
}function getOffsetTopToBody(obj)
{ var offsetTopToBody=obj.offsetTop;
var theOffsetElement=obj;
while(theOffsetElement=theOffsetElement.offsetParent)
offsetTopToBody+=theOffsetElement.offsetTop;
return offsetTopToBody;
}function getOffsetLeftToBody(obj)
{
var offsetLeftToBody=obj.offsetLeft;
var theOffsetElement=obj;
while(theOffsetElement=theOffsetElement.offsetParent)
offsetLeftToBody+=theOffsetElement.offsetLeft;
return offsetLeftToBody;
}
</script>
<script language="JavaScript">
<!--
var s = 0;
function show(obj)
{
oRect = obj.getBoundingClientRect();
if(s % 2 == 0)
{
document.all.menu.style.display = '';
document.all.menu.style.left = oRect.left;
document.all.menu.style.top = oRect.top;
}
else
{
document.all.menu.style.display = 'none';
}
s +=1;
}//-->
</script>
<body>
<div id="menu" style="position:absolute;left:0px;top:0px;display:none">
<p>menuitem1</p>
<p>menuitem2</p>
<p>menuitem3</p>
</div>
<table width="500" border="1" cellspacing="0" cellpadding="0">
<tr>
<td colspan="2">
<p>
这里的文字可能会比较多,一行一行的逐渐拉长<br>
这里的文字可能会比较多,一行一行的逐渐拉长<br>
这里的文字可能会比较多,一行一行的逐渐拉长<br>
这里的文字可能会比较多,一行一行的逐渐拉长<br>
这里的文字可能会比较多,一行一行的逐渐拉长
</p>
</td>
</tr>
<tr>
<td width="50%"> </td>
<td width="50%" height="50" valign="bottom"><span style="cursor:hand;" id="sp" onclick="show(this)">点击当前文字则出现菜单</span></td>
</tr>
</table>
</body>
</html>
Return ValueReturns a TextRectangle object. Each rectangle has four integer properties (top, left, right, and bottom) that represent a coordinate of the rectangle, in pixels.ResThis method retrieves an object that exposes the left, top, right, and bottom coordinates of the union of rectangles relative to the client's upper-left corner. In Microsoft® Internet Explorer 5, the window's upper-left is at 2,2 (pixels) with respect to the true client.