For a smooth transition effect, consider using visibility:hidden; instead of display:none; in combination with CSS3 animations to fade in and move your elements. When using visibility, also include opacity:0 on the element fading out. Take a look at this guide for more information on CSS3 animations: Link to css3 animations
.fade{
width:100px;
height:100px;
background-color:red;
float:left;
opacity:1;
-webkit-animation: fade 0.5s linear infinite alternate;
}
.move{
width:100px;
height:100px;
background-color:green;
margin-left:100px;
float:left;
-webkit-animation: move 0.5s linear infinite alternate;
}
@keyframes move {
from {margin-left:0;}
to {margin-left:100px;}
}
@keyframes fade {
from {opacity:0;}
to {opacity:1;}
}
See example here