点击按钮,我添加的结果很少。我使用slideDown
方法显示这些新结果,但不知道为什么这些新结果会先slideUp
然后执行slideDown
动画。当我清除添加的结果时,它会立即被移除而根本没有动画。
请查看此演示:http://jsbin.com/imulem
$('#sb').click ( function(){
var html = '';
html += "<div class='result'>" + 'fake results.. ' + '</div>';
html += "<div class='result'>" + 'fake results.. ' + '</div>';
html += "<div class='result'>" + 'fake results.. ' + '</div>';
$(html).hide().prependTo('#searchresults').slideDown('slow');
});
$('#clearb').click ( function(){
$('#searchresults>div').slideUp('slow').remove();
});
答案 0 :(得分:1)
这个css导致它:
-webkit-transition: all 1s ease-in-out;
答案 1 :(得分:1)
我向.result
提供了一个名为h0
且具有height: 0px;
属性的类。这样,当您点击#sb
时,它们没有高度。您应该在动画结束后删除div
。
对于Chrome问题,请更改从all
到background-color
的转换。
您可以找到工作案例here。
CSS
.h0 { height: 0px; }
#searchresults .result{
padding: 1.2em;
margin-left: 2em;
color: #690011;
border-radius: 1.8em;
-webkit-transition: background-color 1s ease-in-out;
background-color: #F0B616;
}
的Javascript
$('#sb').click ( function(){
var html = '';
html += "<div class='result h0'>" + 'fake results.. ' + '</div>';
html += "<div class='result h0'>" + 'fake results.. ' + '</div>';
html += "<div class='result h0'>" + 'fake results.. ' + '</div>';
$(html).hide().prependTo('#searchresults').slideDown('slow');
});
$('#clearb').click ( function(){
var $divs = $('#searchresults>div');
$divs.slideUp('slow', function() { $divs.remove(); });
});