Using a little basic CSS, JavaScript and a dash of animation it's simple to avoid the performance hit of re-calculating layout and provide a smooth user experience.