The right approach here is to create a div and position it off the screen and then use transform to transition it in. That will be rendered once into a texture and the compositor thread will animate it with 60 FPS. Animating layout properties forces reflows, which forces the CPU to render the content. In a pixel pushing dogfight the CPU always loses against the GPU.