Is it possible to animate elements move with css3 transitions after hiding some element using jQuery's .fadeOut()
?
I found some kind of solution here (see "It works for grids, too" section):
However my case is more like this: http://jsfiddle.net/CUzNx/5/
<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 id="item7" class="item">Test7</div>
</div>
<div style="clear:both">
<button onclick="$('#item1').fadeOut();">
Hide first
</button>
<button onclick="$('#item1').fadeIn();">
Show first
</button>
</div>
I have floating div elements and after some element is hidden, it would be nice if other elements were animated. Is it possible?
One approach would be to replace the div to be removed with a placeholder, then animate both the placeholder and the original.
Using this snippet: Positioning an element over another element with jQuery
Your code can be changed to something like this (I used click on the item to trigger the removal here):
Demo
CSS
Script
Snippet from: Positioning an element over another element with jQuery
Now your old div animates out of the way while the grid collapses.
If you are willing to add another library to your code, take a look at Masonry/Isotope by Metafizzy. They were designed to do just this sort of thing.
You dont need CSS-transitions. Just use
.hide()
instead of.fadeout()
See here: https://jsfiddle.net/st1o8ngp/
You could do something like this which uses a CSS class toggled by a little JavaScript and CSS transitions to do what you're looking for instead of using jQuery.
I also took out your buttons and added an "Add all elements back" button:
If you're already using jQuery somewhere else in your project I also made this jQuery version. Here is the JavaScript for that:
Also, you don't need IDs for any of this, so they can be taken out if you so please.