1

私は 10 枚の画像を持っています。1 つをホバーすると、残りの 9 枚でフィルターを変更します。

これは私が持っているものです:

CSS

#posts-wrapper:hover .posts {
    -webkit-filter: blur(10px);
}

jQuery

$(document).ready(function(){ 

    $(".posts").mouseover(function() { 
        $(this).css("-webkit-filter", "none"); 
    }); 

    $(".posts").mouseleave(function() {
        $(this).css("-webkit-filter", "blur(10px)"); 
    }); 

}); 
4

3 に答える 3

2

純粋な CSS を使用すると、次のようなことができます。

jsFiddle の例... およびぼかしがサポートされていないjsFiddle の例。

#parent > div {
    width:100px;
    height:100px;
    border:1px solid black;
    float:left;
    margin:5px;
}
#parent:hover > div:not(:hover) {
    -webkit-filter: blur(10px);
}

残念ながら、:notセレクターは完全にはサポートされていません..代わりに次のようなものを使用することもできます:

jsFiddle の例..が、blur がサポートされていない別の jsFiddle の例です。

#parent > div {
    width:100px;
    height:100px;
    border:1px solid black;
    float:left;
    margin:5px;
}
#parent:hover > div {
    -webkit-filter: blur(10px);
}
#parent:hover > div:hover {
    -webkit-filter:blur(0);
}
于 2013-11-10T02:32:49.147 に答える
0

試す

 $(".posts").mouseover(function () {
     $('.posts').css("-webkit-filter", "blur(10px)"); // added this to add blur to all images
     $(this).css("-webkit-filter", "none");
 });

 $(".posts").mouseleave(function () {
     $(this).css("-webkit-filter", "blur(10px)");
 });
于 2013-11-10T02:32:45.520 に答える
0

このようなことを試してください

$(function() {
var $container  = $('#posts-wrapper'),
$lis    = $container.children('.posts'),
timeout;

$lis.on( 'mouseenter', function( event ) {

    var $li = $(this);
    clearTimeout( timeout );
    timeout = setTimeout( function() {
    if( $li.hasClass('active') ) return false;

    $lis.not( $li.removeClass('blur').addClass('active') )
        .removeClass('active')
        .addClass('blur');
        }, 65 );
});

$container.on( 'mouseleave', function( event ) {

  clearTimeout( timeout );
  $lis.removeClass('active blur');
 });                
});

とcss

.blur {
  -webkit-filter: blur(10px);
  opacity: 0.4;
}
.active {
  opacity: 1;
}
于 2013-11-10T02:42:46.827 に答える