Центровка в блоках строчных элементов и изображений с использованием line-height = height блока нормальная практика, если конечно не использовать flex и табличную верстку, последнее крайне не рекомендуется.
Игорь: в css, т.к. это div c background-image, a не тег img, он не масштабируется автоматически и надо указывать оба параметра и ширины и высоту, иначе блок без контента попросту схлопывается
Да это можно сделать и без скрипта, но на данном сайте скрипт, такой вывод можно сделать хотя бы по инлайн стилям и появлению/исчезновению. Реализация да совсем не очень.
Нажми "view compiled" и будет обычный css, а про мобильные, тут есть одна проблемка, ховер в большинстве vмобильных браузеров плохо отрабатывается, но в принципе работает, проверил в Chrome на android
Лучше описать два состояния и анимацию в css, а в функции просто добавлять соответствующий класс. Если не успевает сработать анимация при быстрой прокрутке, то на jquery можно ее прерывать .stop()
Сергей: этому решению уже 100 лет, просто вставил в исходном виде, в современных реалиях это конечно уже не актуально, но иногда встречаются заказчики требующие чтобы их сайты работали на калькуляторах :)