AJAX不太懂,帮忙解释下

linpyi 2007-09-28 12:29:35
//设置显示位置
function setOffsets() {
completeTable.style.width = inputField.offsetWidth; + "px";
var left = calculateOffset(inputField, "offsetLeft");
// var left = inputField(offsetLeft);
var top = calculateOffset(inputField, "offsetTop") + inputField.offsetHeight;
alert(left);
alert(top);
completeDiv.style.border = "black 1px solid";
completeDiv.style.left = left + "px";
completeDiv.style.top = top + "px";
}
//计算显示位置
function calculateOffset(field, attr) {
var offset = 0;
while(field) {
offset += field[attr];
field = field.offsetParent;
}
return offset;
}
计算显示位置,为什么要写个函数来计算了,
while(field)是什么意思,为什么要用循环,他代表什么
还要 offset += field[attr];
field = field.offsetParent;
都是什么意思,今天刚看这代码,有点摸不着头绪
请大家赐教
...全文
227 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ne_rush 2007-10-04
  • 打赏
  • 举报
回复
calculateOffset(inputField, "offsetLeft");
就是用来取得 inputField 左边到浏览器最左边的距离的


window.对象名 可以用来判断 对象是否存在
window可以省去
所以
calculateOffset(inputField, "offsetLeft"); 中
那个 while(field) 就是来判断field是否存在的
如果存在就加上它到包含它的最内层的对象的左边距【offsetLeft】的
然后把外层对象赋值给 field 然后再重复上面步骤


因为,body 是最外层的
所以循环在此结束

至此得到 inputField 到 body 的左边距离
就是inputField 左边到浏览器最左边的距离的


就这些,讲得不太清楚...


指间的风 2007-10-04
  • 打赏
  • 举报
回复
是给div定位的代码
ITshu 2007-10-01
  • 打赏
  • 举报
回复
关注
linpyi 2007-09-28
  • 打赏
  • 举报
回复
while(文本框)
{
field[attr];//数组里存的是什么东西,会跳出8个数字,是坐标吗?
}
zjsylb 2007-09-28
  • 打赏
  • 举报
回复
关注~

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧