JS - добавляет инлайн стили на скрытые блоки (т.к. блоки отображаются ЗА текстом, на котором отлавливается наведение). В частности добавляется scale с изменяемым значением и opacity, сиречь прозрачность.
То бишь
1.определяетесь с жизненно важной необходимостью вывести такую анимацию, определяете, где именно необходимо вывести подобную анимацию:
а. Если блок внутри или следом за активатором - можно обойтись CSS с анимацией и keyframes
б. Если блок находится в изоляции от активатора - используете js (ну, к примеру, богомерсский JQuery) и отображаете связанный элемент (если не знаете css) с изменением значений в стиле через JS. Либо тупо меняете классы, а анимация на css прописана внутри.
профит.