Welcome to SO!
I think the best practice is using CSS3 transition
with width: 100%
and margin-left
. It makes the transitions very smooth and the only thing you have to do in JS is changing the classes. See the example: http://jsfiddle.net/Stocki/jGbhh/
I hope it helps!