简体   繁体   English

元素的悬停效果

[英]Hover effect for elements

How to add CSS to all li elements on mouseover event except the hovered one, which should be faded? 如何在mouseover事件上将CSS添加到所有li元素( mouseover元素除外,应该将其淡出)?

CSS: CSS:

.tile_nav { width:241px; list-style:none;}
.tile_nav li { width:60px; height:60px; float:left;
 list-style:none; background:#ccc; margin:0 1px 1px 0;}
.tile_nav li a { width:60px; height:60px; display:block;}

JS: JS:

$(document).ready(function() {
    $(".tile_nav li").mouseover(function() {
        $(this).css("opacity", ".5");
    });
    $(".tile_nav li").mouseout(function() {
        $(this).css("opacity", "1");
    });
});

HTML: HTML:

<ul class="tile_nav">
    <li><a href="#">Tile</a></li>
    <li><a href="#">Tile</a></li>
    <li><a href="#">Tile</a></li>
    <li><a href="#">Tile</a></li>
    <li><a href="#">Tile</a></li>
    <li><a href="#">Tile</a></li>
</ul>

You can .siblings() to style the sibling li elements 您可以使用.siblings()设置同级li元素的样式

$(document).ready(function () {
    $(".tile_nav li").hover(function () {
        $(this).siblings().css("opacity", .5);
    }, function () {
        $(this).siblings().css("opacity", 1);
    });
});

 $(document).ready(function() { $(".tile_nav li").hover(function() { $(this).siblings().css("opacity", .5); }, function() { $(this).siblings().css("opacity", 1); }); }); 
 .tile_nav { width: 241px; list-style: none; } .tile_nav li { width: 60px; height: 60px; float: left; list-style: none; background: #ccc; margin: 0 1px 1px 0; } .tile_nav li a { width: 60px; height: 60px; display: block; } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <ul class="tile_nav"> <li><a href="#">Tile</a></li> <li><a href="#">Tile</a></li> <li><a href="#">Tile</a></li> <li><a href="#">Tile</a></li> <li><a href="#">Tile</a></li> <li><a href="#">Tile</a></li> </ul> 

You did almost correctly.
Just using siblings you need to do.
$(document).ready(function() {
    $(".tile_nav li").mouseover(function() {
       $(this).siblings().css("opacity", .5);
    });
    $(".tile_nav li").mouseout(function() {
        $(this).siblings().css("opacity", 1);
    });
});
you can use this code
css:
 #all > ul {
            list-style: none;
            float: left;
            width: 200px;
            padding: 0 10px 0 0;
        }

        #all a {
            text-decoration: none;
            display: block;
            padding: 10px;
            background: #900;
            border-radius: 20px;
            color: white;
            text-align: center;
            margin: 0 0 5px 0;
            -webkit-transition: all 0.2s ease;
            -moz-transition: all 0.2s ease;
            -o-transition: all 0.2s ease;
        }

        #all:hover a {
            opacity: 0.2;
        }

        #all:hover ul:hover a {
            opacity: 0.5;
        }

            #all:hover ul:hover a:hover {
                opacity: 1;
            }

html:
<div id="page-wrap">

        <div id="all">

            <ul>
                <li><a href="#">---</a></li>
                <li><a href="#">---</a></li>
                <li><a href="#">---</a></li>
                <li><a href="#">---</a></li>
                <li><a href="#">---</a></li>
                <li><a href="#">---</a></li>
                <li><a href="#">---</a></li>
            </ul>

            <ul>
                <li><a href="#">---</a></li>
                <li><a href="#">---</a></li>
                <li><a href="#">---</a></li>
                <li><a href="#">---</a></li>
                <li><a href="#">---</a></li>
                <li><a href="#">---</a></li>
                <li><a href="#">---</a></li>
            </ul>

            <ul>
                <li><a href="#">---</a></li>
                <li><a href="#">---</a></li>
                <li><a href="#">---</a></li>
                <li><a href="#">---</a></li>
                <li><a href="#">---</a></li>
                <li><a href="#">---</a></li>
                <li><a href="#">---</a></li>
            </ul>

        </div>

    </div>

jquery :
$("#all ul li").hover(function() { // Mouse over
  $(this).siblings().stop().fadeTo(300, 0.6);
  $(this).parent().siblings().stop().fadeTo(300, 0.3); 
}, function() { // Mouse out
  $(this).siblings().stop().fadeTo(300, 1);
  $(this).parent().siblings().stop().fadeTo(300, 1);
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM