我正在使用此脚本根据类过滤元素。目前它会停止上一个功能并淡入新课程。
基本上我需要在开始淡化选择器之前淡出一切。目前它是从100%不透明度到选择器开始消失的急剧削减,我希望平滑淡出当前(或特定类)并在此之后消失。
我的代码:
$('div.tags').delegate('input[type=radio]', 'change', update);
update();
function update() {
var $lis = $('.results > div'),
$checked = $('input:checked');
if ($checked.length) {
var selector = $checked.map(function () {
return '.' + $(this).attr('rel');
}).get().join('');
$lis.hide().filter(selector).stop().fadeIn(1000, 'easeInCirc');
} else {
$lis.stop().fadeIn(1000, 'easeInCirc');
}
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="tags">
<label class="odseba">
<input class="fadeout" type="radio" checked="checked" rel="all" name="gg" /><span>VŠETKO</span></label>
<label class="odseba">
<input type="radio" rel="web" name="gg" /><span>WEB</span></label>
<label class="odseba">
<input type="radio" rel="eshop" name="gg" /><span>ESHOP</span></label>
<label class="odseba">
<input type="radio" rel="seo" name="gg" /><span>SEO</span></label>
<label class="odseba">
<input type="radio" rel="grafika" name="gg" /><span>GRAFIKA</span></label>
<label class="odseba">
<input type="radio" rel="logo" name="gg" /><span>LOGO</span></label>
<label class="odseba">
<input type="radio" rel="reklama" name="gg" /><span>REKLAMA</span></label>
<label class="odseba">
<input type="radio" rel="kampan" name="gg" /><span>KAMPAŇ</span></label>
<label class="odseba">
<input type="radio" rel="branding" name="gg" /><span>BRANDING</span></label>
<label class="odseba">
<input type="radio" rel="print" name="gg" /><span>PRINT</span></label>
</div>
and these are idems being filtered:
<div class="span4 thumb-pad0 all web eshop print seo">
<div class="thumbnail">
<figure><a href="img/img5.jpg"><img src="img/page3_pic5.jpg" alt=""></a></figure>
<div class="caption">
<h2 style="font:28px/28px 'Century Gothic', 'Century Gothic', Arial, Helvetica, Century Gothic; color:#FFF; text-transform:uppercase; margin:0;">Name</h2>
<p>lorem ipsum</p>
</div>
</div>
</div>
答案 0 :(得分:1)
将fadeIn()作为回调传递给fadeOut():
} else {
$("elements-to-fade-out").fadeOut(1000, "easeInCirc", function() {
$lis.stop().fadeIn(1000, 'easeInCirc');
});
}
你也可以这样做:
} else {
$("elements-to-fade-out").fadeOut(1000, "easeInCirc");
// Fade in after 1000
//
setTimeout(function() {
$lis.stop().fadeIn(1000, "easeInCirc");
}, 1000);
}
有关回调的信息,请参阅此处:
http://www.w3schools.com/jquery/eff_fadein.asp
答案 1 :(得分:1)
淡出所有元素,然后使用callback函数淡化特定元素:
$lis.fadeOut(1000, 'easeInCirc', function(){
$(this).filter(selector).fadeIn(1000, 'easeInCirc');
});