Нажатие на ссылку это тот же onclick событие. Чтобы не происходил переход достаточно вернуть false.
Например
<a id="link" href="https://google.ru/">Нажми чтобы перейти на гугл</a>
<script type="text/javascript">
document.getElementById('link').onclick = function(){
if (!confirm('Вы точно хотите перейти?')) {
return false;
}
}
</script>
Дальше думаю понятно. Можно например запустить анимацию через onclick, вернуть в нем false, а после завершения анимации отправить на нужный url... в общем фантазировать можно сколько угодно
По поводу перезагрузки страницы и перехода назад, это событие onbeforeunload, которое так же как onclick можно отменить. Читайте
тут