怎样用JavaScript自动定位子菜单的显示位置?
描述:导航菜单和子菜单都是动态生成的,子菜单用div包容(效果见http://www.net2win.net/xgzg)。我想使用子菜单实现这样的效果:当子菜单左边框超出灰色单元格时,子菜单左边框位置自动调整到灰色单元格内;同理,当子菜单右边框超出灰色单元格时,子菜单右边框位置自动调整到灰色单元格内;其它的子菜单中心与其对应的导航条目的中心对齐。
请问这个怎么实现呢?
问题点数:100、回复次数:7Top
1 楼yyjzsl(阿木)回复于 2006-07-02 04:04:36 得分 0
下半场开始了,^_^
看球先Top
2 楼kgdnui(丑丑)回复于 2006-07-03 14:24:51 得分 0
大哥,不要这个样子啊Top
3 楼kgdnui(丑丑)回复于 2006-07-29 09:20:30 得分 0
这个问题也很难吗?请各位高手老兄指点一下吧。Top
4 楼kgdnui(丑丑)回复于 2006-12-09 10:39:01 得分 0
自己顶Top
5 楼yueliangdao0608((深圳PHPER.MSN:yueliangdao0608@gmail.com)回复于 2006-12-09 14:01:19 得分 7
offsetHeightTop
6 楼striker_un(徐兴)回复于 2006-12-09 17:23:59 得分 90
这个确实很好做。
计算一个元素的位置,
让新开的结点的的位置定位在元素位置的相关位置上。
function setOffsets() {
//var end = offsetEl.offsetWidth;
var top = calculateOffsetTop(offsetEl);
var left = calculateOffsetLeft(offsetEl);
document.getElementById("show_me").style.left = left + -125 + "px";
document.getElementById("show_me").style.top = top + "px";
}
function calculateOffsetTop(field) {
return calculateOffset(field, "offsetTop");
}
function calculateOffsetLeft(field) {
return calculateOffset(field, "offsetLeft");
}
function calculateOffset(field, attr) {
var offset = 0;
while(field)
{
offset += field[attr];
field = field.offsetParent;
}
return offset;
}
还不会用的话,请留言,
我把全页给你贴上。Top
7 楼wshuangminlg(这里有你想要的 http://31767702.qzone.qq.com/)回复于 2006-12-10 13:51:33 得分 3
帮LZ顶Top




