Как сделать так, чтобы у шапки при скроле появлялась тень?
$(window).scroll(function(){
    if ($(window).scrollTop() > 100){
       $('.header').addClass('scroll');
    } else {
       $('.header').removeClass('scroll');
    }
 });
Соответственно у класса scroll  даёте box-shadow
А так чтобы пропадал стоя на месте это думаю добавлять класс только на событие скролла
Используйте sticky плагин stickyjs.com или руками пишите js.