美妙社 - MeiMiaoShe.com
不只是一个[美味]且[奇妙]的社区
现在注册
已注册用户请  登录
最近讨论的主题
节点活跃用户
DivivitYan  • 26 讨论
MMS_LJfOrMxm  • 1 讨论
不看回复  • 1 讨论
我的记忆误解了  • 1 讨论
罗钊刚  • 1 讨论
美妙社  ›  建站笔记

任意页面制作导航高亮效果

DivivitYan听音乐 2021-11-7 21:05:438.5K 次点击 阅读模式     
第一种(discuz自带,仅限用于主导航)
<!--{eval $mnid = getcurrentnav();}-->

getcurrentnav() 是discuz自己封装的一个函数,而这一段是获取当前页面位置。

第二种
{if $do=='wall'} class="a"{/if}

这种方式局限性比较大。不推荐使用

第三种
{if $_G['**']=='**'}class="a"{/if}

这里其实用到的就是get方式,来get地址栏中的参数。比如一下2段地址
  1. <li{if $_G['do']=='doing'}class="a"{/if}><a href="home.php?mod=space&uid=$space[uid]&do=doing&view=me&from=space">{lang doing}</a></li>
  2. <li{if $_G['do']=='blog'}class="a"{/if}><a href="home.php?mod=space&uid=$space[uid]&do=blog&view=me&from=space">{lang blog}</a></li>
复制代码
    我们既然是要做当前页面的高亮,那么首先需要注意的一点就是找列表中 href 的不同之处。
    以上面的这段为例,其他的参数都是一致的,唯独 do 的参数不一致,那么我们就需要去 get 这个 do 的参数,来区分当前页面是哪一个。这样,当我们访问的页面地址栏中有 do=doing 时,父级的li中 就会多出一个class="a"。
当然这里可以get地址栏中的任意一个参数,前提是所有 a 标签中的 href 里,必须都包含。

第四种
../forum.php
../home.php

如果需要高亮当前导航的地址中,没有像第三种所举例的这些参数,例如:那么这里就需要用到 $_G['basescript'] 这个变量了。比如:
  1. <li{if $_G['basescript']=='forum'}class="a"{/if}><a href="http://www.meimiaoshe.com/forum.php">论坛</a></li>
  2. <li{if $_G['basescript']=='home'}class="a"{/if}><a href="http://www.meimiaoshe.com/home.php">家园</a></li>
复制代码
啊舒服sdf
目前尚无回复
添加一条新回复
您需要登录后才可以回帖 登录 | 立即注册

本节点积分规则
站点统计  ·  手机版  ·  小黑屋  ·  帮助  ·  Archiver  ·  手机版  ·  小黑屋  ·  14 人在线  最高记录 291  ·  TOP
愿孤独的人都会唱歌,愿漂泊的人都有酒喝!
World is powered by solitude
GMT+8, 2024-4-17 07:52, Processed in 0.256249 second(s), 179 queries .

  Inspire by v2ex, Powered by Discuz! X3.5, Template by MeiMiaoShe.Com, © 2001-2024 Discuz! Team.