0

基本的に、divが次のように設定された4つの画像があります。

   <div id="selector">
    <div id="1"><div class="folio_container pk"><div class="overlay"></div></div></div>
    <div id="2"><div class="folio_container ybn"><div class="overlay"></div></div></div>
    <div id="3"><div class="folio_container u"><div class="overlay"></div></div></div>
    <div id="4"><div class="folio_container more"><div class="overlay"></div></div></div>
    <div class="clearfloat"></div>
    </div>

そしてcss:

  .folio_container{margin:10px 80px 10px 15px; float:left; position:relative; cursor:pointer; -moz-border-radius: 8px; -webkit-border-radius: 8px; background-position:top left; background-repeat:no-repeat; width:80px; height: 80px;}
.pk{ background-image:url(../images/pk_icon.png) !important;}
.ybn{ background-image:url(../images/ybn_icon.png) !important;}
.u{ background-image:url(../images/u_icon.png) !important;}
.more{ background-image:url(../images/more_icon.png); margin:10px 0px 10px 15px !important;}

.overlay{ background-image:url(../images/overlay.png); background-position:top left; -moz-border-radius: 8px; -webkit-border-radius: 8px; background-repeat:no-repeat; width:80px; height:80px; position:absolute; top:0px; left:0px; display:none;}

Jqueryを取得して、それぞれの個別のホバーのオーバーレイでフェードインするようにするにはどうすればよいですか?divクラスが同じであるため、このアイデアと常に混乱していますが、すべてを同時にトリガーすることはありませんか?

これまでのjqueryは次のとおりです。

$('.overlay').css('display', 'block');
$('.overlay').css('opacity', 0.0);
$('folio_container', this).hover(function() {
    $(this).children('.overlay', this).stop().animate({opacity:1.0},500);
},
function() {
    $(this).children('.overlay', this).stop().animate({opacity:0.0},500);
});
4

2 に答える 2

1

舞台裏では、jQueryはセレクターによって一致した各divを繰り返し、overandout関数を個々の要素にバインドします。

余談stopですが、オプションのパラメーターであるclearQueue(関数を切り替えるときに保留中のアニメーションを削除する)とgotoEnd(現在のアニメーションを終了する)の両方をtrueに設定して呼び出すことをお勧めします。これは通常、人々が望む動作です。(たとえば、この質問を参照してください。)

于 2009-12-18T15:43:19.497 に答える
0

私は答えを得ました、私はJqueryが同じクラスのトリガーの別々の要素にそれぞれアクションを適用するのに十分賢いことに気づきませんでした!完全:

どちらの方法でもjqueryがここにあります!

    $('.overlay').css('display', 'block');
$('.overlay').css('opacity', 0.0);
$('.folio_container').hover(function() {
    $('.overlay', this).stop().animate({opacity:1.0},500);
},
function() {
    $('.overlay', this).stop().animate({opacity:0.0},500);
});
于 2009-12-18T15:36:40.480 に答える