首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

关于js获取id的坐标有关问题

2012-09-15 
关于js获取id的坐标问题今儿个写个下拉菜单效果,需要获取title的id,然后获取该id的坐标,给弹出菜单一个显

关于js获取id的坐标问题
今儿个写个下拉菜单效果,需要获取title的id,然后获取该id的坐标,给弹出菜单一个显示位置。
问题来了:在ie8和ff里面,可以获取到该id的坐标,而ie7、ie6获取的坐标都是0,0....
是命名可能重复?...改了好几个名字还是获取不到...
求解...
网页源代码:

HTML code
<div class="top1" id="menu_img">            <a id="chanpin">策划案例</a>            <a href="#" id="no">旅游婚纱</a>            <a id="no" href="server.html">服务项目</a>            <a id="no" href="aboutus.html">关于我们</a>            <a id="no" href="index.html"  style="margin:0 10px 0 20px;; background:none; width:190px; height:87px;"><img src="images/index_03.jpg"/></a>            <a id="no" href="news.html">最新新闻</a>            <a id="no" href="contact.html">联系我们</a>            <a id="no" href="blong.html">博 客</a>            <a id="no" href="weibo.html">微 博</a>                   </div>


js代码:
JScript code
$("#chanpin").mouseover(function(){                                                                                                          var menu_img=document.getElementById("chanpin");                                                     var x=menu_img.offsetLeft;                                                     var y=menu_img.offsetTop;                                                     $("#sub_menu").css({"top": (y+35)+"px",                                                "left": (x+0)+"px"                                                }).show("fast");                                                         $("#chanpin").css({"background":"#80064a",                             "color":"#fff"                     });                                                     })


IE6下表现:

IE8下表现




[解决办法]
var x=$("#chanpin").offset().left
var y=$("#chanpin").offset().top + $("#chanpin").height();
[解决办法]
offsetLeft/offsetTop等都相对已经定位的父级元素的偏移值,
父元素要定位为:absolute/relative,如果父元素不定位就相对顶级对象.
是否是你的css影响到了?
给你个地址你可以参考一下:
http://www.cnblogs.com/jilleanwong/archive/2008/09/22/1295783.html
[解决办法]
JQUERY是兼容IE6+和火狐的
JAVASCRIPT下得到绝对位置脚本代码 需要循环所有的父
1function GetPosition(obj)
2{
3 var left = 0;
4 var top = 0;
5
6 while(obj != document.body)
7 {
8 left = obj.offsetLeft;
9 top = obj.offsetTop;
10
11 obj = obj.offsetParent;
12 }
13
14 alert("Left Is : " + left + "\r\n" + "Top Is : " + top);
15}
 

热点排行