Нативный JS, как сделать такое?
// Если нужно именно load
window.addEventListener('load', fn, false );
// в большинстве случаев, достаточно дождаться загрузки DOM
document.addEventListener('DOMContentLoaded', fn, false);
По поводу fadeOut - есть достаточно много уже готовых решений. Простейший пример. Но так же есть решения и с requestAnimationFrame, с использованием метки времени etc.
P.S. Вот тут достаточно много инфы
document.querySelector('.my_theme_loader_inner').animate([ { opacity: 1 }, { opacity: 0 } ], 400);
Где не поддерживается можно подключить полифил
caniuse.com/#search=web%20animations