在我的页面中滚动菜单时更改了。但是当我在联系部分并刷新页面时,它会选择主页但保持联系部分。
var lastId,
topMenu = $(".menu"),
topMenuHeight = topMenu.outerHeight()+15,
menuItems = topMenu.find("a"),
scrollItems = menuItems.map(function(){
var item = $($(this).attr("href"));
if (item.length) { return item; }
});
$(window).scroll(function(){
var fromTop = $(this).scrollTop()+topMenuHeight;
var cur = scrollItems.map(function(){
if ($(this).offset().top < fromTop)
return this;
});
cur = cur[cur.length-1];
var id = cur && cur.length ? cur[0].id : "";
if (lastId !== id) {
lastId = id;
menuItems
.parent().removeClass("active")
.end().filter("[href=#"+id+"]").parent().addClass("active");
}
});
答案 0 :(得分:0)
您可以尝试在刷新页面之前捕获会话变量上的菜单详细信息(当前菜单处于活动状态),并且在加载页面时参考同一会话变量和更新菜单中的菜单详细信息。
在卸载时捕获菜单详细信息的代码:
$('body').on('beforeunload',function(){
//update menu details on session
$.session.set("actMenu", $("#menu div.active").text());
});
更新加载菜单详细信息的代码:
$(document).ready(function(){
//update menu from session
$("#menu div").each(function() {
if((this).text()==$.session.get('actMenu'))
$(this).addClass('active');
});
});
快乐编码:)