В общем случае: используйте css-классы для переключения внешнего вида элемента не меняя стили в js-коде (плохо: x.css('color', 'red'), лучше: el.className += " red"). Используйте display: none (1 reflow, repaint), внесите 100 изменений в стили, восстановите display (1 reflow, repaint).
Учитывайте
затратность компоновки — элемент с переменным background-size должен иметь
минимальную вложенность, т.к. нужно пересчитывать визуализацию всех соседей и всех родительских эл-в. Лучше вынести элемент с переменным background-size из стандартного потока компоновки блочной модели — position: absolute/static.
Копайте в сторону оптимизации
reflow & repaint — смотрите профайлером что и когда подтормаживает, учет потребляемых ресурсов. Управляйте слоями:
https://developers.google.com/web/fundamentals/per...