Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   не работает слайдер при первой загрузки страницы (https://javascript.ru/forum/jquery/64824-ne-rabotaet-slajjder-pri-pervojj-zagruzki-stranicy.html)

Nailya 07.09.2016 20:27

не работает слайдер при первой загрузки страницы
 
Добрый вечер!

Написан слайдер, который не работает при первой загрузке:

- в Firefox
- в Crome -работает через раз

Принцип работы моего слайдера такой:
Устанавливается ширина фото, проставляется для каждой картинке.
Суммируются ширина всех фото, эта сумма устанавливается внешнему контейнеру #slideInner.
С помощью margin-left прокручивает фото вправо/влево.


Проблема в том, что при первой загрузке страницы, многим слайдам ширина проставляется нулевая.
При последующих загрузках все работает хорошо для Firefox, а в Crome через раз.

Единственное, что в голову приходит, что браузер не успевает обработать код.

Подскажите, что можно сделать в этом случае?

Вот страница, при клике на картинку появляется слайдер: http://demodemon.ru/arh_moscow111/fo...rohod-2016.php

laimas 08.09.2016 01:01

Цитата:

Сообщение от Nailya
Единственное, что в голову приходит, что браузер не успевает обработать код.

Размеры изображения можно получить только после его загрузки браузером.

Nailya 08.09.2016 08:43

Спасибо, вы мне очень помогли)) Действительно в этом была проблема. Поставила $(window).load(function() вместо $(document).ready(function() и все заработало

laimas 08.09.2016 13:49

Не могу представить как это может помочь.
Сначала загружаются эскизы изображений, либо один эскиз какого либо изображения. Вызов слайдера, это загрузка изображений оригинальных размеров. Изображения предварительно загружаются, и по их событию onload/oncomplete получают их характеристики.

рони 08.09.2016 14:39

laimas,
$(window).load == запустить код после загрузки всего, в том числе и картинок.

laimas 08.09.2016 15:37

Цитата:

Сообщение от рони
запустить код после загрузки всего, в том числе и картинок.

Ну так в таком случае должны грузиться сразу оригинальные размеры, тогда да, но это же какой объем... По ссылке количество картинок не малое. Я не смотрел код, но размеры изображений да - 640 х на что-то. Если фиксировано под 640рх, то зачем вообще ждать чего-то, а ведь рассчитывается. Следовательно можно ожидать и большие размеры.

Я вот из этих соображений. )

рони 08.09.2016 16:25

:write: можно прописать размеры в css или скрипте и тогда можно не ждать загрузки ... страница очень долго грузится или картинок много или они не оптимизированы, как вариант грузить превью или грузить только те, что в зоне видимости

laimas 08.09.2016 16:33

Цитата:

Сообщение от рони
как вариант грузить превью

Ну так я об этом и писал, то есть исходил из этого. Если рассчитывается размер контейнера по изображениям, значит размеры могут быть и приличными. Не выгодно оригиналы грузить, а значит и $(window).load не при делах. )

Цитата:

Сообщение от рони
можно прописать размеры в css или скрипте

CSS в смысле в тег стилей? Да, и лучше в нем, чем еще и скрипт отдельно формировать.


Часовой пояс GMT +3, время: 11:24.