100分:JavaScript获取控件位置

页面上有一个div宽和高都是500px,div中的内容很多,超出了500*500的显示范围,超出部分用滚动条,现在在div中有一个textbox,属于超出的位置,即要向下... 页面上有一个div 宽和高都是500px,div中的内容很多,超出了500*500的显示范围,超出部分用滚动条,现在在div中有一个
textbox,属于超出的位置,即要向下滚动“滚动条”才能看到,现在我想获得textbox距窗体顶部的距离,这个距离随滚动条的滚动应该是变化的,而我现在用
function SetXY(Obj) {
for(sumTop = 0, sumLeft = 0; Obj != document.body; sumTop += Obj.offsetTop, sumLeft += Obj.offsetLeft, Obj=Obj.offsetParent);
}
这个方法得到的位置是不变化的,这个不是我要的结果,我想要能变动的位置,怎么获得?

背景:我做了个自动完成的功能,在页面上有divDetail,其中有很多条记录,超出的以滚动条方式显示,每条记录第一列是textbox,输入时有自动提示功能,我想把自动提示框divTip定位显示在当前textbox下面

答对加分
展开
 我来答
Shana_Me
2009-07-17 · TA获得超过104个赞
知道小有建树答主
回答量:138
采纳率:0%
帮助的人:168万
展开全部
先取得盯乱textbox距窗体顶部的距离(textbox.y),然后再根据滚动条凯侍档的值做修正。
20分就20分,没必要说是100分。
function GetTop(obj) {
return (obj.top-obj.parentNode.scrollTop);
}
参考资料是谈仔一篇自动补全的例子。

参考资料: http://blog.163.com/1985wanggang/blog/static/77638332009621138266/

yiwei124
2009-07-17 · TA获得超过1197个赞
知道小有建树答主
回答量:1187
采纳率:0%
帮助的人:347万
展开全部
要不就用鼠标位置吧,这个不好说
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
a5202003
2009-07-17 · TA获得超过2248个赞
知道大有可为答主
回答量:1885
采纳率:75%
帮助的人:586万
展开全部
JavaScript不是很清楚,但链竖是应该有个滚动条滚动时触发的事件扰唤掘。而且能算出滚动条滚动的距离。
在C++里,事缓核件好像叫AfterScroll,楼主你再找找。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
撒白风05F
2009-07-17 · TA获得超过1010个赞
知道小有建树答主
回答量:735
采纳率:0%
帮助的人:510万
展开全部
刚刚做了一个类似的旅宏前东西,用到了以下方法,请参考
function getAbsolutePosition(obj){
position = new Object();
position.x = 0;
position.y = 0;
var tempobj = obj;
while(tempobj!=null && tempobj!=document.body)
{
if(window.navigator.userAgent.indexOf("MSIE"拆清)!=-1)
{
position.x += tempobj.offsetLeft+10;
position.y += tempobj.offsetTop+15;
}
else if(window.navigator.userAgent.indexOf("绝谈Firefox")!=-1)
{
position.x += tempobj.offsetLeft;
position.y += tempobj.offsetTop;
}
tempobj = tempobj.offsetParent
}
return position;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式