0

基本上我有 4 个 div 的图像设置如下:

   <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 回答