扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
一、网站导航栏
成都创新互联成都网站建设按需定制,是成都营销推广公司,为成都门帘提供网站建设服务,有成熟的网站定制合作流程,提供网站定制设计服务:原型图制作、网站创意设计、前端HTML5制作、后台程序开发等。成都网站制作热线:18982081108我们所熟知的网站导航栏,无非就是网站标题以横、纵向方式排列,用户点击以后进入相应的页面来展示网站内容,达到传达信息的目的。
用户点击进入一个页面,如果在刷新后此导航栏有文字有相应的颜色、背景变化,那么将会有一个很好的用户体验,此时就涉及到CSS的hover样式、jQuery的触发事件了。
二、hover样式
鼠标扫过文字时,文字的背景、颜色变化,这样做很简单:
a:hover{},一句话就可以搞定;但如果要点击刷新后仍然存在鼠标刷新的样式,就有点上层次了。
具体问题具体分析:
1、根据使用的不同框架来定
2、CMS自己封装了相应的方法
3、导航栏单独做成头部文件,利用ajax无刷新技术得以实现头部无刷新,只变化内容区域就更简单点
4、导航栏每个按钮都有固定的、以ID结尾的链接(以DEDE为例)
/plus/list.php?tid=1、
/plus/list.php?tid=2、
/plus/list.php?tid=3、
/plus/list.php?tid=4
三、简单实现步骤
下面就讲第四种情况的实现方法(其它3种因为本人能力有限,待以后继续更新):
HTML :很简单的导航条代码
jQuery: hover方法、each方法判断是当前页面第一个a标签对象的href属性
$(function(){ $("ul>li").hover(function(){ $(this).children("a").addClass(""); },function(){ $(this).children("a").removeClass(""); $("ul>li>a").each(function(){ $this = $(this); if ($this[0].href == String(window.location)){ $this.addClass(""); } }); }); $("ul>li>a").each(function(){ $this = $(this); if ($this[0].href == String(window.location)){ $this.addClass(""); } }); });
因为有多个a标签,所以要遍历当前页面所在第一个a标签对象,获取它的href属性,来与所在页面链接做对比,如果符合就添加对应的hover css样式;但问题来了,样式已经添加,鼠标经过此文字离开时又移除了该属性,我们再次将下面这条语句复制进hover移除后的句子后面,再次强制添加该属性,就成功解决了!
四、遗留问题、改进方向
1、 /plus/list.php?tid=1,该导航按钮此时有了我们需要的样式,但如果点击此导航页面下面的子链接,页面变成了子链接所在的页面,但还属于此导航栏目的子栏目,此时的导航按钮就失去了样式。
2、利用jQuery实现浏览器兼容性更加好,css3等新技术可以对自己的个人网站做实验。
3、能让子栏目智能识别父栏目才是解决问题的最好办法。
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流