Updated to use CSS3 Transitions because they are faster on mobile, but still need to look and see if they are better.