jQuery对底部导航进行跳转并高亮显示
程序员文章站
2022-05-25 21:11:17
这两天弄一个mui的底部菜单,有点费时了,尝试了用vue写,纯js写,还有根据mui的写,还是有些问题和麻烦。直到看了网上的一些例子,才想明白,之前一直是一种点击触发事件才高亮的思维去做,这个虽然可以了,但是页面跳转了就又都没了。网上看明白的例子是:让当前页面地址与导航里的地址做对比,相同就高亮,之 ......
这两天弄一个mui的底部菜单,有点费时了,尝试了用vue写,纯js写,还有根据mui的写,还是有些问题和麻烦。直到看了网上的一些例子,才想明白,之前一直是一种点击触发事件才高亮的思维去做,这个虽然可以了,但是页面跳转了就又都没了。网上看明白的例子是:让当前页面地址与导航里的地址做对比,相同就高亮,之前思维太死,一直以点击才触发事件来写,结果问题好几个。接下来上代码
<style> .active{ color:#d96c00;}/*高亮样式*/ </style>
这里就放菜单部分代码,在针对vue写菜单的时候,是把导航写到data,再循环遍历输出,最终由于购物车的数字角标显示问题而放弃,采用jquery了
<nav class="mui-bar mui-bar-tab" id="menu"> <a href="menutest.html" rel="menutest.html" class="mui-tab-item"><!-- rel是作对比的--> <span class="fa fa-home"></span> <span class="mui-tab-label">首页</span> </a> <a href="service.html" rel="service.html" class="mui-tab-item"> <span class="mui-icon iconfont icon-shop"></span> <span class="mui-tab-label">客服</span> </a> <a href="shopcart.html" rel="shopcart.html class="mui-tab-item"> <span class="mui-icon iconfont icon-gouwuche"><span class="mui-badge">5</span></span> <span class="mui-tab-label">购物车</span> </a> <a href="me.html" rel="me.html" class="mui-tab-item"> <span class="fa fa-user-circle-o"></span> <span class="mui-tab-label">我的</span> </a> </nav>
接下来是jquery语句
var urlstr = location.href; //获取浏览器的url var urlstatus=false; $('#menu a').each(function() { if ((urlstr + '/').indexof($(this).attr('rel')) > -1&&$(this).attr('rel')!='') { // 为当前点击的导航加上高亮,其余的移除高亮 $(this).find('span').addclass('active'); urlstatus = true; } else { $(this).removeclass('active'); } }); if (!urlstatus) { $("#menu a span").eq(0).addclass('active'); //默认首页图标高亮 }