Верстаешь отдельно блок-прелоадер. Стилями скрываешь его, например:
.preloader {
position: fixed;
left: 0px;
top: 0px;
right: 0px;
bottom: 0px;
display: none;
}
В блок с прелоадером кладёшь гифку/блок с анимацией/svg (да что угодно) .
По клику на кнопку показываешь.
Если по клику у тебя ajax-запрос какой-нибудь, в коллбеке опять скрываешь прелоадер.