如何实现菜单的某一项在某一页有与众不同的效果?(类似于Z-BLOG)

Zimmerk 2013-01-26 01:12:12
就像 http://blog.rainbowsoft.org/ 一样,
当页面在首页时,菜单的“首页”有不同的样式,
当页面在留言板时,菜单的“留言板”有不同的样式,“首页”恢复正常

不知道这个是怎么实现的,正在查看源码,但工程量貌似有点大,
希望知道的朋友能解答一下。
...全文
345 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Zimmerk 2013-01-28
  • 打赏
  • 举报
回复
引用 5 楼 showbo 的回复:
获取路径就行了。。你看我给的那个示例就是获取路径的,分页后也能设置焦点 JavaScript code?123//var m = /\/([a-z]+\.html)/i.exec(location.pathname)//=========>var m = /\/([a-z\d]+)\//i.exec(location.pathname)//如果目录不是“字母数字”组成的……
非常感谢,第一次看的时候没有看完整。 我又上网查了一下网页设计的资料,我正在用jQuery的$().each为第个菜单项绑定了click事件,来设置焦点高亮,然后用AJAX局部刷新页面。 你的方法我在另一个站也使用着,我看看哪个更好使
Zimmerk 2013-01-27
  • 打赏
  • 举报
回复
引用 1 楼 showbo 的回复:
js获取当前页面地址然后查找对应导航设置获得焦点样式就好了,和这种差不多吧http://www.spread168.cn/ index.html,supply.html,buy.html,company.html,product.html,news.html XML/HTML code?1234567891011121314151617<style>l……
非常感谢,我原先没有找到这个思路,我先去试试看
Go 旅城通票 2013-01-27
  • 打赏
  • 举报
回复
获取路径就行了。。你看我给的那个示例就是获取路径的,分页后也能设置焦点
//var m = /\/([a-z]+\.html)/i.exec(location.pathname)
//=========>
var m = /\/([a-z\d]+)\//i.exec(location.pathname)//如果目录不是“字母数字”组成的修改这里的正则
Zimmerk 2013-01-27
  • 打赏
  • 举报
回复
引用 1 楼 showbo 的回复:
js获取当前页面地址然后查找对应导航设置获得焦点样式就好了,和这种差不多吧http://www.spread168.cn/ index.html,supply.html,buy.html,company.html,product.html,news.html XML/HTML code?1234567891011121314151617<style>l……
但我发现一个问题,如果访问的是一个有默认文档的目录,比如 /Article/和/Article/Defalt.aspx /Admin/ 和 /Admin/Default.aspx 这样的地址就很麻烦,不知道有没有更好的方法?
功不唐娟 2013-01-26
  • 打赏
  • 举报
回复
实际上就应该是焦点设置的问题吧,事件发生分别修改两个导航的属性。。。
Go 旅城通票 2013-01-26
  • 打赏
  • 举报
回复
js获取当前页面地址然后查找对应导航设置获得焦点样式就好了,和这种差不多吧http://www.spread168.cn/ index.html,supply.html,buy.html,company.html,product.html,news.html
<style>
li.focus{background:#ff0000;color:red}
</style>
<ul id="ulWebNav"><li><a href="index.html">网站首页</a></li><li><a href="supply.html">产品供应</a></li><li><a href="buy.html">产品求购</a></li><li><a href="company.html">企业会员</a></li><li><a href="product.html">企业产品展示</a></li><li><a href="news.html">实验设备资讯</a></li></ul>
<script>
var m = /\/([a-z]+\.html)/i.exec(location.pathname)//如果你的页面不是“字母.html”组成的修改这里的正则
,as=document.getElementById('ulWebNav').getElementsByTagName('a')//获取导航连接
,aFocus=as[0];//默认首页设置焦点样式
if(m){//存在,则遍历导航连接地址和页面对比找到焦点连接
   m=m[0];
   for(var i=0,j=as.length;i<j;i++)
    if(as[i].href.indexOf(m)!=-1){//导航连接地址包含前访问的页面
        a=as[i];break;
    }
}
a.parentNode.className='focus';///////设置焦点样式
</script>
网管教程 从入门到精通软件篇 ★一。★详细的xp修复控制台命令和用法!!! 放入xp(2000)的光盘,安装时候选R,修复! Windows XP(包括 Windows 2000)的控制台命令是在系统出现一些意外情况下的一种非常有效的诊断和测试以及恢复系统功能的工具。小编的确一直都想把这方面的命令做个总结,这次辛苦老范给我们整理了这份实用的秘笈。   Bootcfg   bootcfg 命令启动配置和故障恢复(对于大多数计算机,即 boot.ini 文件)。   含有下列参数的 bootcfg 命令仅在使用故障恢复控制台时才可用。可在命令提示符下使用带有不同参数的 bootcfg 命令。   用法:   bootcfg /default  设置默认引导项。   bootcfg /add    向引导列表中添加 Windows 安装。   bootcfg /rebuild  重复全部 Windows 安装过程并允许用户选择要添加的内容。   注意:使用 bootcfg /rebuild 之前,应先通过 bootcfg /copy 命令备份 boot.ini 文件。   bootcfg /scan    扫描用于 Windows 安装的所有磁盘并显示结果。   注意:这些结果被静态存储,并用于本次会话。如果在本次会话期间磁盘配置发生变化,为获得更新的扫描,必须先重新启动计算机,然后再次扫描磁盘。   bootcfg /list   列出引导列表中已有的条目。   bootcfg /disableredirect 在启动引导程序中禁用重定向。   bootcfg /redirect [ PortBaudRrate] |[ useBiosSettings]   在启动引导程序中通过指定配置启用重定向。   范例: bootcfg /redirect com1 115200 bootcfg /redirect useBiosSettings   hkdsk   创建并显示磁盘的状态报告。Chkdsk 命令还可列出并纠正磁盘上的错误。   含有下列参数的 chkdsk 命令仅在使用故障恢复控制台时才可用。可在命令提示符下使用带有不同参数的 chkdsk 命令。   vol [drive:] [ chkdsk [drive:] [/p] [/r]   参数  无   如果不带任何参数,chkdsk 将显示当前驱动器中的磁盘状态。 drive: 指定要 chkdsk 检查的驱动器。 /p   即使驱动器不在 chkdsk 的检查范围内,也执行彻底检查。该参数不对驱动器做任何更改。 /r   找到坏扇区并恢复可读取的信息。隐含着 /p 参数。   注意 Chkdsk 命令需要 Autochk.exe 文件。如果不能在启动目录(默认为 %systemroot%System32)中找到该文件,将试着在 Windows 安装 CD 中找到它。如果有多引导系统的计算机,必须保证是在包含 Windows 的驱动器上使用该命令。 Diskpart   创建和删除硬盘驱动器上的分区。diskpart 命令仅在使用故障恢复控制台时才可用。   diskpart [ /add |/delete] [device_name |drive_name |partition_name] [size]   参数 无   如果不带任何参数,diskpart 命令将启动 diskpart 的 Windows 字符模式版本。   /add   创建新的分区。   /delete   删除现有分区。   device_name   要创建或删除分区的设备。设备名称可从 map 命令的输出获得。例如,设备名称:   DeviceHardDisk0   drive_name   以驱动器号表示的待删除分区。仅与 /delete 同时使用。以下是驱动器名称的范例:   D:   partition_name   以分区名称表示的待删除分区。可代替 drive_name 使用。仅与 /delete 同时使用。以下是分区名称的范例:   DeviceHardDisk0Partition1    大小   要创建的分区大小,以兆字节 (MB)表示。仅与 /add 同时使用。   范例   下例将删除分区: diskpart /delete Device HardDisk0 Partition3 diskpart /delete F:   下例将在硬盘上添加一个 20 MB 的分区:   diskpart /add Device HardDisk0 20   Fixboot

61,112

社区成员

发帖
与我相关
我的任务
社区描述
层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。
社区管理员
  • HTML(CSS)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧