最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

默认隐藏左侧菜单的方法_html/css_WEB-ITnose

来源:动视网 责编:小采 时间:2020-11-27 16:40:25
文档

默认隐藏左侧菜单的方法_html/css_WEB-ITnose

默认隐藏左侧菜单的方法_html/css_WEB-ITnose:公司一项目需要默认隐藏框架的左侧菜单,遇到了一些问题,下面简要记录问题的解决过程,以备后续查看、参考。初这个问题看似很简单,只需要找到对应的js和css,设置左侧菜单不显示或者默认点击一次即可。沿着上面的思路,我改出了第一版: $(document).
推荐度:
导读默认隐藏左侧菜单的方法_html/css_WEB-ITnose:公司一项目需要默认隐藏框架的左侧菜单,遇到了一些问题,下面简要记录问题的解决过程,以备后续查看、参考。初这个问题看似很简单,只需要找到对应的js和css,设置左侧菜单不显示或者默认点击一次即可。沿着上面的思路,我改出了第一版: $(document).


公司一项目需要默认隐藏框架的左侧菜单,遇到了一些问题,下面简要记录问题的解决过程,以备后续查看、参考。

这个问题看似很简单,只需要找到对应的js和css,设置左侧菜单不显示或者默认点击一次即可。沿着上面的思路,我改出了第一版:

 $(document).ready(function() { 
 $("#menu a.menu").click(function(){ 
 $("#menu li.menu").removeClass("active"); 
 $(this).parent().addClass("active"); 
 if($("#openClose").hasClass("close")){ 
 $("#openClose").click(); 
 } 
 }); 
 if($("#openClose").hasClass("close")){ 
 $("#openClose").click(); 
 } 
 });

经测试,修改未通过。在登陆成功,跳转到这个页面时会明显看出左侧菜单的渐默。

从上次修改中可以看出,左侧菜单是默认显示的。由于js实现的效果不符合需求,只能改css了。

$("#right").width($("#content").width()-$("#openClose").width()-5);

做到这里感觉还是蛮轻松的,测试也没有明显的问题。事情总有反复,bug也是出人意料,在Firfox下整个页面只有顶部菜单栏可以正常显示。问题在这儿变得有点麻烦了,浏览器兼容性很难解决。

CSS display 属性只定义了值为'none'时,对应元素不在页面显示,并没有规范浏览器的实现。

网上的搜索结果也没有相关问题的解决方案,只能自己想办法了。

既然只在Firfox下有问题,则判断浏览器厂商,做特殊处理,代码如下:

if($.browser.mozilla){ };

利用FirBug的查看器可知,右侧页面iframe的src为空,且左侧菜单虽未显示,但内容已加载完成。知道问题症结所在,就好解决了。找出默认菜单,取得菜单链接,为右侧页面iframe的src赋值。

$(document).ready(function() { 
if($.browser.mozilla){ 
$("#mainFrame").attr("src",$("#menuFrame").contents().find("li.active :first-child").attr("href")); 
}; 
$("#menu a.menu").click(function(){ 
$("#menu li.menu").removeClass("active"); 
$(this).parent().addClass("active"); 
if($("#openClose").hasClass("close")){ 
$("#openClose").click(); 
} 
if($.browser.mozilla){ 
$("#mainFrame").attr("src",$("#menuFrame").contents().find("li.active :first-child").attr("href")); 
}; 
});
});

但问题还是没有解决,切换菜单滞后。在点击切换菜单后页面没有反应,在第二次点击切换菜单时才会跳转得到第一次要跳转的菜单,或者说是切换菜单需要单击两次。

这种情况应该是获取默认菜单url的时机不对,应该在左侧菜单切换完成后获取。在菜单绑定的单击方法中,左侧菜单的内容并没有完成刷新。

查资料可知,iframe有一个加载完成事件,正好可以用在这里。最终代码如下:

$(document).ready(function() { 
$("#menu a.menu").click(function(){ 
$("#menu li.menu").removeClass("active"); 
$(this).parent().addClass("active"); 
if($("#openClose").hasClass("close")){ 
$("#openClose").click(); 
} 
}); 
if($.browser.mozilla){ 
$("#menuFrame").on("load",function(){ 
$("#mainFrame").attr("src",$("#menuFrame").contents().find("li.active :first-child").attr("href")); 
}); 
}; 
});

经测试,没有bug,这个问题也就解决了。

文档

默认隐藏左侧菜单的方法_html/css_WEB-ITnose

默认隐藏左侧菜单的方法_html/css_WEB-ITnose:公司一项目需要默认隐藏框架的左侧菜单,遇到了一些问题,下面简要记录问题的解决过程,以备后续查看、参考。初这个问题看似很简单,只需要找到对应的js和css,设置左侧菜单不显示或者默认点击一次即可。沿着上面的思路,我改出了第一版: $(document).
推荐度:
标签: 菜单 隐藏 菜单栏
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top