页面重新加载后保持菜单切换状态
Keep menu toggle state after page reload
这是一个运行完美的切换菜单:如果我单击链接(下面的HTML代码),菜单会折叠。但是我希望用户重新加载页面以保持菜单的状态(展开/折叠)。
$('#menu_toggle').click(function () {
if ($('body').hasClass('nav-md')) {
$('body').removeClass('nav-md');
$('body').addClass('nav-sm');
$('.left_col').removeClass('scroll-view');
$('.left_col').removeAttr('style');
$('.sidebar-footer').hide();
if ($('#sidebar-menu li').hasClass('active')) {
$('#sidebar-menu li.active').addClass('active-sm');
$('#sidebar-menu li.active').removeClass('active');
}
} else {
$('body').removeClass('nav-sm');
$('body').addClass('nav-md');
$('.sidebar-footer').show();
if ($('#sidebar-menu li').hasClass('active-sm')) {
$('#sidebar-menu li.active-sm').addClass('active');
$('#sidebar-menu li.active-sm').removeClass('active-sm');
}
}
});
<a id="menu_toggle"><i class="fa fa-bars"></i></a>
如何记住状态?完整项目:http://demo.kimlabs.com/gentelella/production/index.html谢谢
您应该使用 cookie 来存储布尔值,无论菜单是否已打开或关闭。然后,当加载页面时,它会检查任何存储的 Cookie,并默认使用这些变量。
例如:
页面加载时:
var menuOutBoolean = Cookies.get("menuOutB") || false;
if (menuOutBoolean == true || menuOutBoolean == "true"){
//put the menu out
}
else {
//put menu in
}
关于更改:
if (/*out*/){
Cookies.set("menuOutB","true");
}
else{
Cookies.set("menuOutB","false");
}
注意:在这里,我使用了这个JavaScript API(Jquery插件)。
这是我使用 localStorage 的那种事情。只需在状态更改时在localStorage中设置某种标志,并在页面加载时获取它。
我应该补充一点,使用 css 类来表示视图状态不是一个好主意,如果你的 UI 变得更加复杂,它会咬你。
相关文章:
- 悬停下拉菜单即使在鼠标移出后也保持活动状态
- Dojo菜单栏选定状态
- Dojo栏菜单在选定状态下堆叠
- WordPress切换菜单 - 使菜单在当前页面上保持打开状态
- 如果其中一个子菜单项处于活动状态,则展开下拉菜单
- 悬停样式应该在动态加载多级菜单时保持单击状态
- 当子菜单的父级或包含链接处于活动状态时,如何告知子菜单可见
- Javascript在悬停状态下制作下拉菜单 - 没有HTML中的硬编码
- 如何使用 JavaScript 保存菜单状态
- 菜单悬停状态
- 下拉菜单不想保持打开状态
- 当目标处于顶部滚动状态时,如何从菜单中激活项目
- Jquery 无法返回到动画菜单列表上的活动状态
- JavaScript 下拉菜单在单击时处于活动状态,在外部单击时不活动
- 记住菜单状态垂直多级导航
- 从一页到另一页的多级推送菜单状态
- 记住重新加载时的菜单状态
- JS菜单保持菜单状态
- 选项卡和侧边菜单-状态链接不起作用
- 如何在页面重新加载时保持菜单状态