js是怎么从白色变成蓝色的?



我试图使一个菜单,当你悬停其他菜单项,有一个变化,从白色到蓝色的色调。我想用不透明度,但没有运气,你有什么建议吗?

我正在使用这个代码

HTML

 <nav>
        <ul class="showcase">
        <li><a href="#" class="current">1</a></li>
        <li><a href="#">2</a></li>
        <li><a href="#">3</a></li>
        <li><a href="#">4</a></li>
           <li><a href="#">5</a></li>
        </ul>
        </nav>​
CSS

nav ul li a{
    font-size: 20px;
    font-family:Arial, Helvetica, sans-serif;
    color: black;
    text-transform:capitalize;
    font-weight:normal;
    display:block;    /* IE6, IE7 line height fix */
    padding:15px;
    background-color:transparent;
    margin-top:0px;
    margin-right:6px;
    text-decoration:none;    
}
nav ul li a:hover{
    background-color: #43AEF2;
    padding:15px;
    color:white;
    -moz-border-radius: 8px;
    border-radius: 8px;
}
nav ul li a.current{
    background-color:#43aef2 ;
    padding:15px;
    color:white;
    -moz-border-radius: 8px;
    border-radius: 8px;
}

JS

$("li").css('opacity', '1')
$(".selected").css('opacity', '.9')
$('ul.showcase').hover(
function() {
    $(this).find('li').stop().fadeTo(500, 1);
}, function() {
    $(this).find('li').stop().fadeTo(500, .8);
})​

不能100%确定你的预期结果,但请尝试一下:

$("li").css('opacity', '0.40');
$(".selected").css('opacity', '1');
$('ul.showcase > li').hover(function () {
    $(this).stop().fadeTo(500, 1);
}, function () {
    $(this).not('.selected').stop().fadeTo(500, 0.40);
})​;​

试试这个:http://jsfiddle.net/fewds/mdamC/228/

由于你使用的是css3,你可以考虑使用一个过渡效果的悬停,例如:

nav ul li a:hover{
    -webkit-transition: background-color linear 1s;
    -moz-transition: background-color linear 1s;
    -ms-transition: background-color linear 1s;
    transition: background-color linear 1s;
    background-color: #43AEF2;
    padding:15px;
    color:white;
    -moz-border-radius: 8px;
    border-radius: 8px;
}

点击链接后:

$('ul li a').on('click',function(){
    $(this).parents('ul').find('li a').removeClass('current');
    $(this).addClass('current');
});

JSFiddle

我会去@ elclars的建议,但在你的代码中想知道为什么你选择整个ul而不是每个li元素

$('ul.showcase li').hover(
  function() {
    $(this).fadeTo(500, 1);
}, function() {
    $(this).fadeTo(500, .8);
})​

比起"hover",我更喜欢"mouseenter"one_answers"mouseleave"http://jsfiddle.net/mdamC/226/

    $('ul.showcase li').mouseenter(function() {
        $(this).stop().fadeTo(1,1);
    })
    $('ul.showcase li').mouseleave(function() {
        $(this).stop().fadeTo(1,0.4);
    })

最新更新