use transform instead of top and left, because it will use the GPU to reduce the repaint in DOM