fancybox - не загружать скрытые изображения

0

На моем сайте у меня есть несколько галерей, которые открываются FancyBox. Структура: показать одну фотографию из галереи, и когда вы нажмете ее, откроется fancybox, и вы перемещаетесь по фотографиям из этой галереи в fancybox modal.

Код: основное изображение показано

<li><a id="some_id" class="grouped_elements" rel="some_rel" href="some_href"><img src=""></a></li>

А затем фотографии с тем же атрибутом "rel", которые "принадлежат" этой галерее:

<li><a id="some_id" style="display:none;" class="grouped_elements" rel="some_rel" href="some_href"><img src=""></a></li>

На фотографиях, принадлежащих этой галерее, я помещаю "display: none"; поэтому они не отображаются на странице, но только когда вы открываете fancybox, нажимая на основную фотографию.

Это работает, но проблема в том, что у меня много фотографий и загрузка на страницу очень длинная, так есть способ предотвратить фото с "display: none" от загрузки, чтобы заставить его загружаться после открытия какой-либо галереи?

EDIT: забыл упомянуть, я использую fancybox 2.1.5

Теги:
fancybox

2 ответа

0
Лучший ответ

Я бы рекомендовал использовать вызов AJAX для извлечения галереи/изображений, которые пользователь запрашивает. Это будет асинхронным и не повлияет на загрузку страницы. Как только получен успешный ответ, вы можете инициализировать $(). Fancybox(), используя данные ответа

  • 1
    хорошая идея, спасибо :)
0

Ваше решение может быть намного проще:

Оберните все ваши якоря в скрытом div вместо этого скрывая их по отдельности и удалите <img> со всех скрытых привязок, тем самым вы не загружаете какое-либо (большое) изображение, независимо от того, видимо или нет:

Основная фотография:

<li><a id="some_id" class="grouped_elements" rel="some_rel" href="some_href"><img src=""></a></li>

Скрытые фотографии

<div style="display:none">
    <a id="some_id" class="grouped_elements" rel="some_rel" href="some_href"></a>
    <a id="some_id" class="grouped_elements" rel="some_rel" href="some_href"></a>
    ... etc.
</div>

Обратите внимание, что вам даже не нужно обертывать их внутри <li> и этот div можно поместить в любом месте документа и вне элемента <ul>.

Два дополнительных комментария:

  1. Убедитесь, что вы не повторяете один и тот же идентификатор в нескольких элементах. Идентификаторы должны быть уникальными в одном документе. Если вы хотите манипулировать несколькими элементами, используя один и тот же селектор в одном документе, вместо этого используйте классы.

  2. Убедитесь, что вы используете измененные изображения для ваших эскизов (<img>); повторная калибровка большого изображения, чтобы выглядеть маленьким, как миниатюра через css или html, не является (как правило) хорошей идеей.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню