Причина, по которой вы видите белый фон, в том, что браузер еще не загрузил само изображение. Это можно разделить на два отдельных состояния:
- При первом / первом посещении фоновое изображение не будет кэшировано локально, поэтому браузеру потребуется некоторое время для его загрузки, и фон размером около 250 КБ - это не маленькое изображение. Попробуйте немного его оптимизировать.
и
- При последующем посещении не будет загружено ваше фоновое изображение, пока не будут загружены все элементы в вашем разделе головы, и, насколько я вижу, вы поместили туда весь свой код JavaScript.
Я бы порекомендовал вам переместить ваш JS в конец страницы, чтобы он загружал эти элементы в последнюю очередь.
Кроме того, если вы хотите, чтобы абсолютно пустой фон не отображался, рассмотрите возможность использования предварительного загрузчика изображений. Здесь уже есть тема о предварительной загрузке контента:
Предварительная загрузка изображений JavaScript