thinkcmf 导航高亮制作方法(适用于多级导航)(通用)
平时用thinkcmf网站开发经常需要导航点击之后高亮,就写了一些实现方法分享一下。
思路很简单,先获取当前页面的顶级栏目的地址,然后与导航中的地址比较,相同的就加上一个class,把下面函数理解了不管一级、二级、三级都能做。
1、添加函数
/*获取当前栏目的顶级栏目地址适用2级栏目*/
function _get_top_url($c,$id){
$arr['href']['action']="Portal/".$c."/index";
$arr['href']['param']['id']=$id;
$nav=M('nav');
$rs=$nav->select();
foreach($rs as $k=>$v){
$rs[$k]['href']=unserialize(stripslashes($v['href']));
} foreach($rs as $k=>$v){
if($v['href']==$arr['href']){
$a=$v;
}
}
if($a['parentid']==0){
$href=$a['href'];
}else{
$id=$a['parentid'];
$result=$nav->find($id);
$href=unserialize(stripslashes($result['href']));
} if($href){
$href=leuu($href['action'],array('id'=>$href['param']['id']));
$default_app=strtolower(C("DEFAULT_MODULE"));
$g=C("VAR_MODULE");
$href=preg_replace("/\/$default_app\//", "/",$href);
$href=preg_replace("/$g=$default_app&/", "",$href);
}else{
$href="/";
}
/*去除g=Portal*/
//判断URL模式
if( preg_match ( '/php\?g=/' , $href ) ){
$href = preg_replace ( '/g=Portal\&/' , '' , $href );
}else{
$href = preg_replace ( '/Portal\//' , '' , $href );
}
/*转化为小写*/
$href = strtolower($href);
return $href;
}
2、模板调用
<php>
/*获取主导航*/
$menu=sp_get_menu_tree(1);
/*获取当前页面的顶级栏目的地址*/
if(CONTROLLER_NAME=="Article"){
$url=get_top_url("List",$term_id);
}else{
$url=get_top_url(CONTROLLER_NAME,$_GET['id']);
}
//上传到服务器时,可删除下面行,为了本地测试所用 http://localhost/gupiao/
//$url = '/gupiao' . $url;
</php>
<volist name="menu" id="vo" key="k">
/*判断当前页面的顶级栏目的地址$url与导航中的链接$vo["href"]是否一样*/
<li class="n1 <eq name='url' value='$vo["href"]'>selected_u</eq>">
<a href="{$vo['href']}" target="{$vo['target']}">{$vo['label']}</a>
<notempty name="vo['child']">
<ul class="navMoreUL">
<volist name="vo['child']" id="v">
<li><a href="{$v['href']}" target="{$v['target']}">{$v['label']}</a></li>
</volist>
</ul>
</notempty>
</li>
</volist>
thinkcmf 导航高亮制作方法(适用于多级导航)(通用)的更多相关文章
- thinkphp导航高亮的方法
因为引入了公共的 header.html,所以需要使用 js来实现向 li 加入active的高亮属性,这里我通过url地址和href的地址进行判断 // 这里对当前页面导航高亮 $(function ...
- thinkphp实现导航高亮的简单方法
经常会涉及到关于导航菜单高亮显示的问题,大多是通过配合js或者事先分配变量的方式来实现导航高亮的,这里提供另一种思路参考: <ul class="usermenu"> ...
- JS原生代码实现导航高亮
一 实现原理 根据当前页面滚动条的高度判断当前页面应当与导航栏中哪个导航相关联,并对相应的导航设置高亮样式. 二 代码解析 先简单写一个页面顶端的导航栏:<nav> <ul> ...
- vue使用原生js实现滚动页面跟踪导航高亮
需要使用vue做一个专题页面. 滚动页面指定区域导航高亮. BetterScroll:可能是目前最好用的移动端滚动插件 如何自定义CSS滚动条的样式? 监听滚动页面事件,对比当前页面的位置与元素的位置 ...
- 讲解版的导航高亮(新手福利)原生JS
1.先写样式: 导航的排版样式: 导航对应高亮样式: .d6000f{ background:red; } .d6000f a{ color:#fff; } 我这个地方导航高亮样式为背景红色,字体颜色 ...
- 学习使用 CSS3 制作网站面包屑导航效果
作为最重要的导航展示形式之一,面包屑导航能够让用户更清楚的知道他们所在页面的层次结构,让他们可以方便的导航到上一层页面.在本教程中,您将学习如何使用 CSS3 技术创建自己的面包屑导航效果. 效果演示 ...
- 使用css3和伪元素制作的一个立体导航条
使用css3和伪元素制作的一个立体导航条供大家参考,代码如下: <!doctype html> <html lang="en"> <head> ...
- js手机对应的多级导航分享
js移动导航对应,您可以使用自适应时屏幕,当小画面在一定程度上的网站.使导航出现,The navigation effects such as the following figures:多级导航! ...
- Android (争取做到)最全的底部导航栏实现方法
本文(争取做到)Android 最全的底部导航栏实现方法. 现在写了4个主要方法. 还有一些个人感觉不完全切题的方法也会简单介绍一下. 方法一. ViewPager + List<View> ...
随机推荐
- 怎样理解js数组中indexOf()的用法与lastIndexOf
第一首先你运行一下它的js代码: var arr1=["大学","中庸","论语","孟子","诗" ...
- C++之memset函数
可参考: C++中memset函数的用法 C++中memset函数的用法 C++中memset()函数的用法详解 c/c++学习系列之memset()函数 透彻分析C/C++中memset函数 mem ...
- 数据库连接客户端 dbeaver 程序包以及使用说明
dbeaver 是一个基于 Eclipse 的数据库客户端,支持几乎所有常见的数据库.分为商业版和社区版,社区版可以免费使用. 官网和 GitHub https://dbeaver.io/ https ...
- 2019-5-21-C#-在-构造函数添加-CallerMemberName-会怎样
title author date CreateTime categories C# 在 构造函数添加 CallerMemberName 会怎样 lindexi 2019-05-21 11:28:32 ...
- 2019-8-31-dotnet-如何在-Mock-模拟-Func-判断调用次数
title author date CreateTime categories dotnet 如何在 Mock 模拟 Func 判断调用次数 lindexi 2019-08-31 16:55:58 + ...
- File- Linux必学的60个命令
1.作用 件内容判断文件类型,使用权限是所有用户. 2.格式 file通过探测文 file [options] 文件名 3.[options]主要参数 -v:在标准输出后显示版本信息,并且退出. -z ...
- 前端在本地启动服务预览html页面
在开发移动端项目时浏览器里出来的效果往往到真机上和预想的有出入,在开发过程中知道了一个可以在本地自己启动一个服务器在手机预览的办法. 1.首先在终端安装http. npm i http-server ...
- 【NOIP2013模拟联考7】OSU
[NOIP2013模拟联考7]OSU 描述 Description osu 是一款群众喜闻乐见的休闲软件. 我们可以把osu的规则简化与改编成以下的样子: 一共有n次操作,每次操作只有成功与失败之分, ...
- Ionic 左侧菜单(登录主页详情demo)
1.项目结构 2.截图效果展示 3.主要js 代码 $stateProvider .state('app', { url: "/app", abstract: tru ...
- jeecms v9导入myeclipse 2015 ehcache.xml报错问题
1.找不到ehcache.xml文件问题 cache-context.xml <property name="configLocation"> <value> ...