2014-11-02 114 views
0

我有我的網站與正常分頁鏈接,主頁,關於我們,一個簡單的菜單時突出顯示菜單項...點擊和活躍

我一直試圖找到一種方法來突出菜單項被點擊,但所有的解決方案都不能正常工作,但它正在對解決方案小提琴,所以它可能是從我身邊一個錯誤,因爲我很少的JavaScript知識 所以..

的菜單是:

<div class="circle"> 
    <ul id="nav" class="cirular-list" > 
     <li><a href="#Home">Home</a></li> 
     <li><a href="#AboutUs">About Us</a></li>              
     <li><a href="#OurWork">Our Work</a></li> 
     <li><a href="#ContactUs">Contact Us</a></li>        
     <li><a href="#Services">Services</a></li> 
    </ul> 
</div> 

該CSS:

circle a { 
    font-family:'Roboto Condensed', sans-serif; 
    font-weight: 100;  
    display: block;  
    width: 20%; 
    height: 20%;  
    color:#000000; 
    text-align:center; 
    line-height:400%; 
    margin-left: -11%; 
    margin-top: -9%; 
    position: absolute; 
    text-align: center; 
    border:1px solid #ffffff; 
    border-radius: 50%; 
    -webkit-transition: border-color 1s ease; 
    -moz-transition: border-color 1s ease; 
    -o-transition: border-color 1s ease; 
    -ms-transition: border-color 1s ease; 
    transition: border-color 1s ease;   

} 

.circle a:hover { 

    color:#000000; 

    border-color: #000000; 

} 

#nav a:active, #nav a.active { 

    border-color:#000000 !important; 
} 

我試過很多jQuery的解決方案 例如:

document.querySelector('.menu-button').onclick = function (e) { 
    e.preventDefault(); document.querySelector('.circle').classList.toggle('open'); 
} 

$(document).ready(function() { 
    $("#nav li").click(function (e) { 
     e.preventDefault(); 
     $("#nav li a.active").removeClass("active"); //Remove any "active" class 
     $("a", this).addClass("active"); //Add "active" class to selected tab 

     // $(activeTab).show(); //Fade in the active content 
    }); 
}); 

我想象它是一個簡單的事情,但我堅持......

+1

在你的CSS你已經確定了 「一個圈」,如果不是這種 「.circle一個」? – Kolban 2014-11-02 19:46:22

回答

0

嘗試是這樣的

$(".menu-button").on("click", function(){ 
    $("#nav li a.active").removeClass("active"); 
    $(this).addClass("active"); 
}) 
0

你不需要任何JavaScript代碼。添加到您的CSS:

#nav a:active, #nav a.active { 
     border: 1px solid #000; 
     background-color: yellow; 
    } 

既然你只分配邊框顏色和無邊框樣式(即實線,虛線,等等),你無法看到的邊界。

0

在您的CSS替換:active:focus

Fiddle

CSS演示:

.circle a { 
    font-family:'Roboto Condensed', sans-serif; 
    display: block; 
    color:#000000; 
    text-align:center; 
    position: absolute; 
    text-align: center; 
    border:1px solid #ffffff; 
    border-radius: 50%; 
    -webkit-transition: border-color 1s ease; 
    -moz-transition: border-color 1s ease; 
    -o-transition: border-color 1s ease; 
    -ms-transition: border-color 1s ease; 
    transition: border-color 1s ease; 
} 
.circle a:hover { 
    color:#000000; 
    border-color: #000000; 
} 
#nav a:focus, #nav a.active { 
    border-color:#00ff00; 
}