基本上我有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);
});
答案 0 :(得分:1)
在幕后,jQuery迭代你的选择器匹配的每个div,并将over
和out
函数绑定到每个单独的元素。
顺便说一句,我建议使用两个可选参数调用stop
,clearQueue(在函数之间切换时删除任何挂起的动画)和gotoEnd(完成当前动画)设置为true - 这是通常是人们想要的行为! (例如,参见this question。)
答案 1 :(得分: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);
});