需要做成这种样式

url请求为这样:

 http://m03.com/plus/list.php?tid=19

这些菜单项都有对应的tid项,页面刷新后,应该将所有的菜单折叠起来,对于tid=19的菜单项,要判断他是否是子菜单,如果是子菜单,应该讲它所在的整个菜单项打开并将它自身加上active样式,否则不用打开整个菜单,直接加active样式。并且如果当前菜单下没有子菜单,应该讲菜单项前的按钮去除。

这里准备了两张图片

right_g.png和bottom_g.png

首先结合dedecms模板代码生成折叠菜单
 <ul class="flod_menu">
{dede:channelartlist row=5 typeid=10}
<li {dede:field name='typeid' runphp="yes"}@me = (@me==$_GET['tid'] && @me!=10 ? 'class="flod_menu_item active_top"' : 'class="flod_menu_item"');{/dede:field}>
<img src="{dede:global.cfg_templets_skin/}/images/arrow/right_g.png" class="btn"/>
<a href="{dede:field name='typeurl'/}">{dede:field name='typename'/}</a></span>
<ul class="flod_menu_sub">
{dede:sql sql='Select * from dede_arctype where reid=~id~ ORDER BY id limit 0,7'}
<li [field:id runphp="yes"]@me = (@me==$_GET['tid'] && @me!=10 ? 'class="flod_menu_item_sub active"' : 'class="flod_menu_item_sub"');[/field:id]><a href='[field:typedir function='str_replace("{cmspath}","",@me)'/]' target='_blank'>[field:typename/]</a></li>
{/dede:sql}
</ul>
</li>
{/dede:channelartlist}
</ul>

这里有些知识,比如如何在dedecms模板中生成三级菜单,以及如何获取url中的请求参数($_GET['XXX'])。

然后再通过JavaScript代码折叠或打开菜单,去除多余的按钮
 //对于没有下级菜单的,将按钮隐藏
$(".flod_menu .flod_menu_item > .btn").each(function(index,element){
var hasLi = $(this).nextAll(".flod_menu_sub").children().is("li");
if(!hasLi){
$(this).css("display","none");
}
});
//找到当前活动的节点
$(".flod_menu_sub").each(function(index,element){
var isActive = $(this).children(".active").is("li");
if(isActive){
$(this).css("display","block");
}
});
//为按钮绑定单击事件
$(".flod_menu .flod_menu_item > .btn").click(function(){
var cSrc = $(this).attr("src"); if(cSrc.indexOf("right")>=0){
//处于折叠状态,进行打开
$(this).attr("src",cSrc.replace("right","bottom"));
$(this).nextAll(".flod_menu_sub").css("display","block");
}
else{
//处于打开状态,进行折叠
$(this).attr("src",cSrc.replace("bottom","right"));
$(this).nextAll(".flod_menu_sub").css("display","none");
}
});

dedecms模版制作活动的折叠菜单的更多相关文章

  1. 基于jQuery制作的手风琴折叠菜单

    初始化为全部隐藏 点第一个,显示第一个所隐藏的内容 当点第二个的时候,第一个的内容隐藏,第二个栏目的内容显示,以此类推 下面是代码部分 <!DOCTYPE html><html la ...

  2. cocos2dx-lua使用UIListView制作二级折叠菜单

    折叠菜单,用过jquery accordion的同学都知道是啥玩艺儿~,图片效果就是介样: cocos2dx不带有此控件,因此我们动手来实现一个. 原理很简单,展开的时候往listview里inser ...

  3. 滑动式折叠菜单 - Slashdot's Menu

    折叠菜单让你在尽可能小的地方放置尽可能多的内容,同时加大了操作的简便性,因此,深受前台设计师的喜爱.随着大家对动画效果的钟爱,折叠菜单也开始“动”起来了,本文介绍的就是 DimX 制作的滑动式折叠菜单 ...

  4. jQuery&HTML&CSS3实现垂直手风琴折叠菜单方法讲解

    在网页制作中我们常常需要折叠式的菜单,在折叠菜单中,手风琴特效的菜单是非常受欢迎,下面就讲解使用jQuery+HTML+CSS3实现垂直手风琴折叠菜单的方法. jQuery实现垂直手风琴折叠菜单示例代 ...

  5. Smint – 用于单页网站制作的 jQuery 导航菜单插件

    Smint 是一款用于实现单页风格网站的 jQuery 导航插件,包含两部分:固定在页面顶部的精美导航条和能够在你点击的时候自动滚动到对应内容的菜单按钮.Smint 使用非常简单,只有一个参数用于设置 ...

  6. jquery 展开折叠菜单

    jquery 展开折叠菜单 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <ht ...

  7. 顶 兼容各种浏览器js折叠菜单

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  8. JS三级折叠菜单特效 自动收缩其它级

    真的很不错!很实用,在IE6.IE7.IE8.FF.chrome等浏览器都正常运行,去掉CSS中 #menu ul中 {height:100px; overflow:auto;} 即可高度自适应 &l ...

  9. 20151225jquery学习笔记---折叠菜单UI

    折叠菜单(accordion),和选项卡一样也是一种在同一个页面上切换不同内容的功能UI.它和选项卡的使用几乎没有什么太大区别,只是显示的效果有所差异罢了.一. 使用 accordion使用 acco ...

随机推荐

  1. 将证书写到jre中

    第一步: 取得要导入的证书. 第二步: 开启CMD,进入Java/jre6/lib/security 目录下. 第三步: 执行以下命令: keytool -import -alias cacerts ...

  2. Distinct Substrings - spoj 694(不重复子串个数)

    题目大意:RT   分析:练手题目....后缀数组确实很强大.....多理解height数组, 切勿使用模版,后缀数组本身就有很多细节,多犯错更有利理解这个算法.   代码如下: ========== ...

  3. thinkphp中使用PHPEXCEL导出数据

    thinkphp中导出二维数组到Excel 1.解决时间长度导致EXCEL出现###问题 2.解决长数值型 带来的科学记数法导出问题 订单号不再变为科学记数法 而是直接字符串类型 代码如下: < ...

  4. 跨服务器备注SQL数据库 分类: SQL Server 2015-03-05 08:52 227人阅读 评论(0) 收藏

    任务:把服务器1上的SQL数据库自动备份到服务器2上,命名格式=数据库名+年月日+小时. 说明: 服务器2=>192.168.0.22 数据库名=>Book 共享文件夹路径:192.168 ...

  5. C#将数据以XML格式写入Excel

    本文转载:http://www.cnblogs.com/eflylab/archive/2008/09/21/1295580.html c#将数据导入Excel另类方法 今天公司突然给个Excel模版 ...

  6. Codeforces Beta Round #51 D. Beautiful numbers

    D. Beautiful numbers time limit per test 4 seconds memory limit per test 256 megabytes input standar ...

  7. CMake高速入门

    入门基础:http://www.ibm.com/developerworks/cn/linux/l-cn-cmake/       在 linux 下使用 CMake 构建应用程序 入门进阶:http ...

  8. IO之流程与buffer 图

    http://blog.chinaunix.net/uid-29075379-id-3944364.html

  9. 基于HTML5的SLG游戏开发(序)

          2012年前后,HTML5游戏凭借跨平台.易移植.部署简单.节省成本等优点被炒的火热,经过一两年的快速发展,市场出现了一些成功地HTML5游戏产品,像磊友的<修仙三国>,神奇时 ...

  10. iOS UIKit:viewController之Segues (4)

    @import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...