织梦一二级导航菜单被点击栏目高亮(加class)解决方法

最佳实践:
{dede:channel currentstyle=”<a class=’tracker-item tab-term cur’ href=’~typelink~’>~typename~</a>”}
<a href='[field:typeurl/]’ class=”tracker-item tab-term”>[field:typename/]</a>
{/dede:channel}

网站首页菜单被点击高亮调用方法:

 <li><a {dede:field name=typeid runphp="yes"}(@me=="")? @me=" class='on'":@me="";{/dede:field} href="{dede:global.cfg_basehost/}">网站首页</a></li>

织梦一级菜单被点击栏目高亮调用方法:

1
2
3
{dede:channel typeid ='1'  type ='son' currentstyle="<li class='curr'><a href='~typelink~'>~typename~</a></li>"}
<li><a href='[field:typeurl/]'>[field:typename/]</a></li>
{/dede:channel}

*注:对当前栏目列表设置了class=’curr’,可以通过css样式为其设置背景图片或颜色,从而达到栏目高亮的效果。

织梦二级菜单被点击栏目高亮调用方法:

第一步:因为织梦默认dede:channelartlist标签是不支持currentstyle属性的,所以接加下先修改channelartlist.lib.php

1:打开include\taglib\channelartlist.lib.php,找到pv−>Fields[′typeurl′]=GetOneTypeUrlA(typeids[$i]);

2:替换成如图所示:

1
2
3
4
5
6
7
$pv->Fields['typeurl'] = GetOneTypeUrlA($typeids[$i]);
if($typeids[$i]['id'] == $refObj->TypeLink->TypeInfos['id'] || $typeids[$i]['id'] == $refObj->TypeLink->TypeInfos['topid'] ){ 
   $pv->Fields['currentstyle'] = $currentstyle $currentstyle 'navOn'
   
   else
   $pv->Fields['currentstyle'] = ''
   

   第二步:前台调用:

{dede:channelartlist type='top' typeid='top' currentstyle='curr'}

                    <li><a href="{dede:field name='typeurl'/}" class='{dede:field.currentstyle/}' >
            {dede:field name='typename'/}
                       <!--判断二级栏目下有无内容-->
                       {dede:php}
                        $id = $refObj->Fields['id'];
                        $sql = ("SELECT * FROM dede_arctype where reid ='$id'");
                        $db->SetQuery($sql);
                        $db->Execute();
                        if($db->GetTotalRow()){
                        echo '<span class="jt_icon iconAll"></span>';
                        };
                        {/dede:php}
                    </a>
                    <ul style="display: none;">
                         <!--调用下级栏目-->
                         {dede:channel type='son' noself='yes'}
                            <li><a href="[field:typelink/]" class="a1">[field:typename/]</a></li>
                          {/dede:channel}
                    </ul>

                    </li>
                    {/dede:channelartlist}

*注:生成栏目,循环出的顶级栏目li会有一个class=“curr”的属性。页面效果如图所示:

发表评论

邮箱地址不会被公开。