Use jQuery animation with correctly timed callbacks.
Added wrapper div and remove event listeners on close.