Maybe want to add a `stop()` in here? Also maybe put a return at the top of this function is the caption is animating?

    if ($caption.is(':animated')) {
        return;
    }