在后台或OA系统中最常用到的布局往往是一个全屏布局,一般都是上中下三行两列布局,页头、页脚、左侧菜单加一个右侧ifame框架页。所以那种带折叠的二级菜单是会经常使用到的,本例便是实现这样一种比较通用的全兼容可高亮二级缓冲折叠菜单。
特点:
全兼容,浏览器测试:IE5.5、IE6、IE7、IE8、FF3.0、谷歌、Safari 4.0、Opera9.0。
Html结构优雅简洁,无多余标签,利于程序循环输出。
样式与结构分离,你可以在样式表中修改不同的风格。
当前选中项高亮状态,一级菜单和二级菜单都可以高亮显示。
折叠层优雅缓冲动画。
最适用于后台和一些OA系统界面。
缺点: 不支持防刷新,这个功能在后台应用系统中应该用途不大,没有加入这个功能。
在IE6中缓冲效果没有出来,对于IE6,就弱化一下效果。
还是先看看效果截图:
简单说一下制作这样的菜单的一些简单的思路和会遇到的问题。
一般制作一个效果,我的制作流程一般是先画出HTML结构层内容,再写样式,之后是搞一些锦上添花的效果,如JS特效等等。不知各位大牛们是怎样一个流程模式。
结构层: 结构层的构思一般是建立在一个感性认识上的,一般是有一个效果图,根据这个效果图构建最简洁的HTML结构。如上图所示,映入眼帘的第一印象,首先是想到用一个UL的无序列表,但是…这是一个二级嵌套的列表,这是我们首先需要考虑的问题。
因此结构应该是下面这样子:
复制代码 代码如下:
<li><a href="#none">一级菜单项</a>
<ul>
<li><a href="#none">二级菜单项</a></li>
</ul>
</li>
在有二级菜单时是一个嵌套的UL结构,无二级菜单时则是如下:
复制代码 代码如下:
<ul class="menu">
<li><a href="#none">一级菜单项</a></li>
</ul>
当然,你也可以采用dl-dt-dd有序列表的方式来创建这种嵌套的结构,视你的实际情况而定。
有了最原始的结构层,你就需要添加一些必要的钩子,用于CSS和JS控制样式和效果,我一直反对那种添加很多类名的写法,这会增加页面的体积,所以最精简的作法是应用一两个必要的类名给父容器即可,然后在样式表中用子(群)选择符设置各种个性的设置。在上面的结构,你会想到用几个类名来定义所有的样式呢?
我的做法是只用三个类名即可以控制全部的样式显示了。一个是最顶级UL,定义为class=”menu”,一个是二级菜单的容器,也就是嵌套的UL定义一个class=”level2”,最后是一级菜单项li定义一个class=”level1”,有了这三个钩子,你就可以操纵整个结构的样式了。
表现层:
样式表的设置都很简单,唯一要注意的是,为了便于JS控制二级菜单的显隐和记录当前选中项的高亮状态,所以我不用hover伪类来实现鼠标的滑入滑出效果,而采用JS来模拟它。用JS控制样式的关键代码如下:
一级菜单样式
复制代码 代码如下:
/*一级菜单三态样式,供JS调用*/
.menu li.level1 a{display:block;line-height:31px;height:31px;padding-left:50px; font-size:12px;color:#fff;background:url(../images/menubg.gif) no-repeat left top;}
.menu li.level1 a.hove{background-position:left -31px;}
.menu li.level1 a.cur{background-position:left -62px;}
二级菜单样式
复制代码 代码如下:
/*二级菜单三态样式,供JS调用*/
.menu li.level1 a{display:block;line-height:31px;height:31px;padding-left:50px; font-size:12px;color:#fff;background:url(../images/menubg.gif) no-repeat left top;}
.menu li.level1 a.hove{background-position:left -31px;}
.menu li.level1 a.cur{background-position:left -62px;}
行为层:
因为前面已经提到,我们在样式表并没有定义菜单的三态效果,所以我们需要给每个菜单项绑定onmouseover、onmouseout和onclick事件模拟出这种效果来。在结构层中我们并没有定义这个总容器的ID,而只定义了一个class类名,所以在JS添加了一个扩展的getElementsByClassName()方法(感谢好友司徒正美),根据类名来获得这个对象。用循环闭包来绑定这三个事件。
详细代码就不一一解说了,Demo中注释得非常清楚,请下载到本机浏览。
有什么问题请在本博客中跟贴讨论,祝你用得开心!
在线演示地址 http://demo./js/caidan_js/demo.html
打包下载地址 https://www./jiaoben/27308.html
相关推荐:
ChatGPT页面打不开怎么办?这些解决方法让你轻松访问AI助手!,分散ai
代哥SEO-让您的网站迅速登顶搜索引擎的秘密武器,济南关键词的排名优化
SEO学堂:开启数字营销新时代,全面提升网站排名与流量,文山ai营销推广方案
专业SEO方案助力企业网站流量暴增,精准引流不再是难题,网站建设合同4篇
ChatGPT启动时遇到问题?快速解决方案让你畅享智能对话体验,ai如何保存logo
ChatGPT5.0为什么一直没出来?背后的技术与战略,元宵节ai趣赏月
SEO排位:如何通过精准策略提升网站排名,获得流量与转化,林海网络推广营销
ChatGPT:引领人工智能对话新时代的智能助手,Ai shiang
优化综合:引领高效发展的智慧之道,电影营销的推广方式
GPT哪个模型是最新的?AI语言生成的未来,ai回头
如何查文章AI率?全面解析AI文章检测工具及技巧
SEO建议:如何通过优化提升网站流量,赢得市场竞争,自媒体网站免费推广平台
seo配置是什么,seo设置是什么 ,ai图标制作教程
ChatGPT最近不好用了?了解这些背后的原因与解决方案,ai sketcher
文字生成AI:开启创意写作的新纪元
BingAdapter设置数据后没有显示数据?解决方案在这里!,ai中如何把图变形
从零到一:网站历史的演变与未来趋势,肇庆市国外网站建设平台
ChatGPT198元永久会员,开启智慧之门,体验AI的极致服务!,老孙教ai
AI网页版本:开启智能时代的新篇章,拼音标调ai
ChatGPT免登录:轻松畅聊,无需注册,快速体验AI智能助手,眼泪ai
什么是seo快排,seo快排方案 ,ai剪图形
AI免费文章生成器:轻松创作高质量内容的终极工具
SEO指:如何通过精准优化提高网站流量和转化率,无锡论坛营销推广要多久
seo需要会什么技术呢,seo需要会什么技术呢知乎 ,红色框ai
SEO占位:如何在竞争激烈的市场中占得先机?,梁平区省心全网营销推广
seo要什么条件,seo都需要做什么 ,交互ai求职
SEO优化中怎么找关键词:全面解析与实战技巧,ai2002.4.8
SEO检测,让网站排名飞升的秘密武器,高端快消食品营销推广
SEO课:让你从小白变成搜索引擎优化高手,推广自媒体营销计划
AI一键生成文章在线:提升创作效率,改变写作方式
从“官网扒下来”看企业数字化转型的未来,摄影营销策略推广文案
用AI修改文章,提升写作效率与质量的新时代
AI热门软件,未来科技的钥匙
ChatGPT不登录,如何畅享AI的智能服务?,手信ai
ChatGPT打不开了吗?如何快速解决常见问题,恢复顺畅体验!,ai13212511845
SEO王:掌控搜索引擎优化的至高法则,助力企业飞速腾飞,网站动作优化在哪里下载
SEO网:让你的数字营销更加精准高效,开启网络引流新时代,丰县互联网网站推广优势
优化平台:让数字化转型更简单、更高效,莆田谷歌seo品牌排行
如何用AI改文章,让写作更高效、精准,提升内容质量
ChatGPT的破解版:AI世界的新突破,ai无禁忌
GPT-3.5网页版:让你与人工智能零距离接触,ai英语学
ChatGPT网页版内容显示不全的解决方案:如何轻松解决问题?,课件ai
ChatGPT异常了:人工智能的极限与突破,ai and ethics
seo站内优化包括什么营销,seo站内优化操作流程 ,ai 玻璃图标
文章写作AI:让创作更高效、精准的智能助手
ChatGPT当前不可用?背后的原因与解决方案全解析,ai propos
仿写AI:智能时代的创作革命,洛江区移动房网站推广
SEO调整,助力网站流量爆发式增长!,江都seo优化排名
SEO经营:助力企业腾飞的秘密武器,靖边百度关键词排名
ChatGPT手机下载后打不开?可能是这些问题导致的,解决方法在这里!,孤城ai动画