我建议使用animate()
代替fadeOut()
:
$('div').click(
function() {
$(this).animate({
'height': 0,
'opacity': 0
}, 750, function() {
$(this).remove();
});
});
JS 小提琴演示。
编辑以合并 jQuery/CSS 解决方案:
更改 CSS.item
以包含以下内容:
.item{
/* other css removed for brevity */
-webkit-transition: all 1s linear;
-moz-transition: all 1s linear;
-o-transition: all 1s linear;
-ms-transition: all 1s linear;
transition: all 1s linear;
}
并将其更改a.hidden
为以下内容:
.hidden {
width: 0; /* reset everything that might affect the size/visibility */
height: 0;
padding: 0;
margin: 0;
opacity: 0;
-webkit-transition: all 1s linear;
-moz-transition: all 1s linear;
-o-transition: all 1s linear;
-ms-transition: all 1s linear;
transition: all 1s linear;
}
使用以下 jQuery:
// content animate
$('#work-container > div[class*=hidden]').addClass('hidden');
return false;
JS 小提琴演示。
然后一切似乎都如你所愿。尽管我没有尝试遵循.addClass('visible')
上面块中的内容,但我没有理会它。
不过,这确实需要一个支持 CSS 转换(并且支持opacity
)的浏览器,因此它在您的用例中可能并不完美。