I couldn’t see actual image loading. The loader was going on continuously.
Anyways, just use fadeIn() for your image that loads and fadeOut() for loading gif. No need for .hide().
But just make sure that the position of both image elements are independent of each other. i.e. visibility of one image should not affect position of other since both images will be visible at same time for some time.