Skip to content

Commit

Permalink
Merge pull request #15 from jiazibaike/master
Browse files Browse the repository at this point in the history
首页菜单栏的选中逻辑
  • Loading branch information
iTimeTraveler authored Apr 7, 2017
2 parents 0e87309 + b80e2d1 commit 630921e
Showing 1 changed file with 30 additions and 18 deletions.
48 changes: 30 additions & 18 deletions source/js/main.js
Original file line number Diff line number Diff line change
@@ -1,26 +1,38 @@
(function(){

// Highlight current nav item
var hasCurrent = false;
$('#main-nav > li').each(function () {
var url = window.location.href;
var lastIndex = url.length;//要截取的字符串最后一位的位置+1
var lastSlashIndex = url.lastIndexOf("/");
if (lastSlashIndex == lastIndex -1) {
lastSlashIndex = url.lastIndexOf("/",lastSlashIndex -1)//如果url的最后一个字符串是/,则修正最后一个斜杠的位置
lastIndex--;//如果url最后一位是/,则不截取该位
// Highlight current nav item
var hasCurrent = false;

//把相对路径解析成绝对路径
function absolute(href) {
var link = document.createElement("a");
link.href = href;
return (link.protocol+"//"+link.host+link.pathname+link.search+link.hash);
}
url = url.substring(lastSlashIndex,lastIndex);
if(themeMenus[url] == $(this).text().trim()){
$(this).addClass('current-menu-item current_page_item');
hasCurrent = true;
} else {

//移出所有的菜单的选中样式
$('#main-nav > li').each(function(){
$(this).removeClass('current-menu-item current_page_item');
});
var links = $('#main-nav > li > a');
var urls = window.location.href;
//为什么要从后面往前面遍历?因为首页极有可能是https://xxxxx/,
//这样的话肯定能够匹配所有的项
for (var i = links.length; i >= 0; i--) {
if(urls.indexOf(absolute(links[i])) != -1){
$(links[i]).parent().addClass('current-menu-item current_page_item');
//为什么还要设置hasCurrent?因为不排除首页是
//https://xxxx/index.html格式的
hasCurrent = true;
break;
}
}
});

if (!hasCurrent) {
$('#main-nav > li:first').addClass('current-menu-item current_page_item');
}

if (!hasCurrent) {
$('#main-nav > li:first').addClass('current-menu-item current_page_item');
}
})();



Expand Down

0 comments on commit 630921e

Please sign in to comment.