js定位 location.hash

location.hash = id;
下拉菜单通过$("#" + id).slideup("normal");

在页面上虽然闭合了但还是会占用空间,所以经常定位不准

原因:

经过研究是因为隐藏的height属性影响的。

解决方法:

var height = $("#" + id).css("height");

$("#" + id).css("height", 0);  //(1)

location.hash = id;

$("#" + id).css("height", height );//完成定位后注意还原

 

ie6下(1)处需修改 :$("#" + id).css("height", 0).hide();

为了定位更好点用

var offset = $("#" + id).offset();

var top = offset.top;

window.scroll(0, top + 向下友好距离);

 

补充:

更好使用:$("#" + id).css("height", auto);

 

原理不是很清楚,本人不是前台的,根据有限的知识来解决问题,

期间怎么研究都没用,以前不知道在哪看过有关height的事,

忽然这件事从脑中出现,试了下,果然是它影响的,看来平时随便看看,在关键时刻,

不用靠google大神也能解决。

 

如果有简便方法请留下你的痕迹!!!

 

 

 

你可能感兴趣的:(jquery,location.hash)