【发布时间】:2014-05-08 01:33:35
【问题描述】:
我想删除一个div,并让包装器内的所有其他div(之后)重新排列并很好地动画(滑动)到它们的新位置。目前它一闪而过,事情并不总是在正确的地方进行,而我的普遍失败。
JsFiddle:http://jsfiddle.net/CUzNx/30/
HTML
<div class="container">
<div id="item1" class="item">Test1</div>
<div id="item2" class="item">Test2</div>
<div id="item3" class="item">Test3</div>
<div id="item4" class="item">Test4</div>
<div id="item5" class="item">Test5</div>
<div id="item6" class="item">Test6</div>
</div>
Javascript
var items = document.getElementsByClassName('item');
for(var i = 0; i < items.length; i ++)
{
items[i].onclick = function() {
this.classList.toggle('hide');
}
};
CSS
.container {
width: 500px;
}
.item {
float: left;
width: 48%;
min-height: 187px;
border: 1px solid black;
margin: 0 1% 1em 0;
position: relative;
background: white;
transition: all .5s ease-in-out;
-webkit-transition: all .5s ease-in-out;
-moz-transition: all .5s ease-in-out;
-ms-transition: all .5s ease-in-out;
-o-transition: all .5s ease-in-out;
}
.hide {
width: 0px;
height: 100%;
opacity:0;
margin:0;
padding:0;
-webkit-backface-visibility: hidden;
-webkit-transform-style: preserve-3d;
}
【问题讨论】:
-
尝试将
border: 0;添加到.hide。 -
@KittMedia - 它肯定更近了,但看起来仍然不正确。我希望每个项目都能滑入到位(或以某种方式设置动画)。见 - jsfiddle.net/CUzNx/44
-
你考虑过masonry.desandro.com 吗?为什么要重新发明轮子?
-
masonry.desandro.com/methods.html#remove - 我认为正是你想要实现的目标
-
砌体是纯 javascipt,如果你的意思是它不需要 JQuery。您可以在有或没有 JQuery 的情况下使用它。另外,我真的不认为链接到图书馆是一个答案,所以我不会将它添加为一个。
标签: javascript css animation html