我有一个菜单项登录标记,通过媒体查询以及用户登录时在移动设备上的显示方式不同。
LargeDevice - loggedin - ShowMarkup
LargeDevice - loggedOut - ShowMarkup
SmallDevice - loggedin - ShowMarkup
SmallDevice - loggedOut - DoNotShowMarkup
标记的条件是在API中,所以我有一个if条件来检查用户是否像这样注销
if (acs.user.loggedin === false) {
$('a.navbar-toggle.icon').hide();
$('#my-menu').show();
}
其余部分仅使用CSS完成,并按预期工作。
唯一的问题是用户是否已注销并位于LargeDevice上,然后调整为小屏幕。如何告诉浏览器检查浏览器宽度是否已调整大小以重新检查acs.user.loggedin
或其他解决此问题的方法?
答案 0 :(得分:2)
不是直接从Javascript显示和隐藏元素,而是更改JS代码以将CSS logged-in
或logged-out
类添加到容器元素。
然后,您可以使用带有该类名的CSS选择器,进出媒体查询,以指定您的四种状态:
@media (max-width: 640px) {
.logged-out a.navbar-toggle.icon {
display: none;
}
}