Вот фрагмент кода с функцией:
document.querySelector("#res").innerHTML = "Проект будет стоить" + finalCalc + " рублей";
Если бы я работал с вами в команде, я бы вас побил за такой код (это шутка).
Но я бы на вашем месте, обернул добавляемый код в div, установил родительскому компоненту
position: relative; overflow: hidden;
, а блоку который использовал для обертки задал
position: absolute; transition: top 4s;
и поднял бы выше области видимости в родительском элементе. Потом установил для блока обертки
top: 0;
, а дальше CSS все сделает сам.
UDP: Вот, что бы наглядно посмотрели что имею ввиду: