Обзор

LightGallery это скрипт для просмотра изображений, написанный на JavaScript (подобен популярному скрипту LightBox). Он способен отображать как одиночные изображения, так и галереи с использованием визуальных эффектов. Скрипт очень компактен (7K - сжатая версия) и полнофункциональный, и при этом он независит от других библиотек.

Возможности

  • Масштабирование изображений
  • Возможность изменять режим “во весь экран/по размеру экрана”
  • Анимированные эффекты - плавное изменение размеров и прозрачности
  • Возможность устанавливать опции: изменять скорость анимации, включать/выключать анимацию, устанавливать синхронное изменение размеров, включать/выключать масштабирование и др.
  • Возможность добавлять языковые пакеты (в данный момент доступен только русский)
  • Предварительная загрузка изображений (preload)


Примеры

Одиночные изображения:

Галерея:


Управление

Чтобы просматривать следующее/предыдущее изображение, масштабировать и т.д. используйте соответствующие ссылки или следующие команды:
“b” - предыдущее изображение, “n” - следующее изображение, “f” - показать реальный размер изображения, “+” - увеличить, “-” - уменьшить, “Esc” - выход.


Установка

Чтобы установить LightGallery на веб страницу, добавьте следующий скрипт:

<script src="lightgallery/lightgallery.min.js" type="text/javascript"></script>

Заметьте: вы можете выбрать, какой скрипт подключать - несжатая версия (lightgallery.js), минифицированная (lightgallery.min.js) и сжатая (lightgallery.packed.js). lightgallery.js следует использовать только в целях разработки и отладки. Во всех других случаях используйте либо минимизированную либо сжатую версию. Если вы сжимаете скрипты при помощи GZip, то лучший вариант это минимизированная версия.

Если необходимо добавить языковой пакет, добавьте соответствующий скрипт (на этом примере показано добавление русского языкового пакета с кодировкой UTF-8):

<script src="lightgallery/lang/ru_utf8.js" type="text/javascript"></script>

Добавьте вызов функции lightgallery.init() в событие onload:

window.onload = function(){
	lightgallery.init();
}

Также можно установить различные опции:

window.onload = function(){
	lightgallery.init({
		enableZoom:false,
		speed:50,
		fadeImage:false
	});
}

Доступные опции:

  • animate (по умолчанию - true) - включение/выключение анимации
  • framesNumber (по умолчанию - 20) - количество кадров в анимации
  • speed (по умолчанию - 30) - отрезок времени между воспроизведением кадров, мсек
  • resizeSync (по умолчанию - false) - если установить в true, то размеры контейнера изменяются одновременно и по-горизонтали и по-вертикали
  • enableZoom (по умолчанию - true) - включение/выключение масштабирования
  • fadeImage (по умолчанию - true) - использовать плавное появление для изображений (лучше выключать для изображений большого размера)
  • alias (по умолчанию - ‘lightgallery’) - псевдоним, используемый в атрибуте “rel” (rel = ‘lightgallery’).

Далее добавьте стиль style.css из директории skin/default (в данный момент LightGallery содержит только один скин - default):

<link href="lightgallery/skins/default/style.css" type="text/css" media="screen" rel="stylesheet" />

И последнее - необходимо отметить все изображения для просмотра используя аттрибут rel=”lightgallery”. Все изображения, которые необходимо группировать в галереи должны содержать имя галереи в квадратных скобках, т.е. так rel=”lightgallery[flowers]”. Значения аттрибута title ссылок будет отображаться как подпись к рисунку. Примеры:

Одиночные изображения

<a href="001.jpg" rel="lightgallery" title="Leaves after rain"><img src="001_t.jpg" alt=""/></a>
<a href="002.jpg" rel="lightgallery" title="Pink flowers">Pink flowers</a>



Галерея

<a href="001.jpg" rel="lightgallery[flowers]" title="Leaves after rain"><img src="001_t.jpg" alt="" /></a>
<a href="002.jpg" rel="lightgallery[flowers]" title="Pink flowers"><img src="002_t.jpg" alt="" /></a>

На заметку: Вы можете изменить значение атрибута “lightgallery” на что-нибудь другое используя опцию alias. Установите её в “lightbox” если необходима совместимость с LightBox:

window.onload = function(){
	lightgallery.init({
		alias : 'lightbox'
	});
}


Загрузить

Последняя версия 1.1 - загрузить

Посетить страницу проекта на GoogleCode


Обратная связь

Если у Вас возникнут вопросы, со мной можно связаться через email: ischenkodv@gmail.com

Добавить в закладки:

Комментарии на “LightGallery”

  1. dimas:

    прикольно.
    только прокрутку экрана не отлавливает когда LG_container уже видимый

  2. admin:

    @dimas
    Спасибо за замечание. Проверю.

  3. Олег:

    А возможно ли будет расширить функциональность библиотеки, чтобы она могла отображать не только картинки, но и другие виды контента? К примеру, как в проекте lightwindow - http://www.stickmanlabs.com/lightwindow ?

  4. admin:

    @Олег
    Думаю возможно. Попробую сделать это к следующему релизу.

  5. loly:

    Спасибо, попробую в своем проекте, расширение функционала это конечно хорошо … главное что б LightGallery осталась Light :)

  6. clankorn:

    трабл в опере был исправлен в версии 9,5 самой же оперы

  7. admin:

    @clankorn
    Отлично! Этот баг с onload для изображений уже давно нужно было исправить.

  8. Дмитрий:

    Не могу никак ваш скрипт поставить помогите!!!! Нечего не работает у вас есть какойнибудь контакт типо icq?

  9. admin:

    @Дмитрий
    Отвечу через email, он указан на странице “О сайте”

  10. freebit:

    Здравствуйте!Очень понравился ваш скрипт!Подключился с полпинка и все отлично работает.Скажите, а нет возможности ввести еще одну опцию в метод init(), которая бы устанавливала степень затемнения фона. А то использую ваш скрипт на светлом таком ресурсе,и тут вдруг мрак окутывает мир:)Спасибо Вам!

  11. admin:

    @freebit
    И Вам также спасибо. Обязательно сделаю это в следующем релизе. А пока, чтобы изменить степень затемнения (прозрачность оверлея), нужно вручную изменить её значение в коде. Найдите вызов этой функции:
    fadeIn(G.overlay, 0, 85, 9);
    … и измените значение третьего параметра на нужный процент затемнения.
    Еще лучший на мой взгляд вариант это изменение цвета оверлея в файле /skins/default/style.css. Вместо черного, можно поставить светло серый цвет:
    #LG_overlay{

    background:#888;

    }

  12. Alex:

    Скрипт хороший. Хотелось бы узнать ,а можно как-то настроить ,чтобы при клике на маленькое фото, большое фото увеличивалось из маленького фото ,а при закрытии туда же возвращалось.Спасибо Вам!

  13. admin:

    @Alex
    > Скрипт хороший.
    > …
    > Спасибо Вам!
    Вам также спасибо за лестную оценку.

    Я понял Вашу идею, однако так скрипт не настраивается. Его разве что можно только переделать по новому, что не хотелось бы, по крайней мере сейчас. Но я подумаю над реализацией этого в будущем. Ну а пока, для такого эффекта можно использовать Highslide.

  14. Андрей:

    В MSIE версии 5 не работает и выскакивает окно ошибки (тестировалось с помощью IEtester), а также в старой Опере глючит.

    Неплохо бы предусмотреть проверку версии браузера, или что-то подобное, и в таких случаях блокировать выполнение lightgallery.

    А так, все очень хорошо. Спасибо за интересный скрипт.

  15. admin:

    @Андрей
    Спасибо, обязательно учту.

  16. Андрей:

    Спасибо за ответ. Заодно, еще такой вопрос.

    Если, по какой-то причине увеличенная картинка не загрузилась или долго грузится, то окно нечем закрыть. Нельзя ли сделать так, чтобы сначала появлялась кнопочка “закрыть”, а потом начиналась загрузка изображения?

    P.S. В предыдущем сообщении, я имел в виду конечно MSIE 5.5

  17. admin:

    @Андрей
    Да, конечно, кнопочку надо сделать. А пока закрывать можно при помощи клавиши ESC.

  18. Андрей:

    Простите за назойливость, но думаю очередное замечание пойдет только на пользу.

    Что будет, если LightGallery на страницу подключена, а фотографий, самой галереи на ней по какой-то причине нет? Например, еще не установлены, или добавляются и удаляются посетителями, как на форуме, к примеру.

    В таком случае будет ошибка JS. Я проверил.

    Думаю, нужна блокировка подобной ситуации.

  19. admin:

    @Андрей
    Нет, что Вы, какая там назойливость. Наоборот, Ваше замечание это плюс. Я добавлю этот баг в TODO лист.

  20. «Nemesis»:

    Замечательный скрипт, ОГРОМНОЕ Спасибо создателю! Буду использовать на своем сайте.

  21. «Nemesis»:

    Собираетесь ли вы сделать так, чтобы изображение оставалось посреди экрана?
    Опять же, как тут - http://www.stickmanlabs.com/lightwindow.
    Было б очень удобно.

  22. admin:

    @Nemesis
    > Собираетесь ли вы сделать так, чтобы изображение оставалось посреди экрана?
    Нет, так делать не собираюсь. Честно говоря, не вижу в этом никакого смысла. Экран ведь затемняется, и я думаю никто не станет просматривать страницу в то время, когда отображается галерея.

  23. «Nemesis»:

    Еще вопрос, у меня при просмотре галереи, помимо бокового, появляется нижний слайдбар. Это можно обойти?

  24. admin:

    @Nemesis
    Нет, нельзя, это по всей видимости небольшой баг. Скорее всего не верно определяется ширина страницы и когда появляется оверлей, то ширина у него несколько больше, чем ширина страницы. Отсюда и нижний скроллбар.

  25. Просто блог » Blog Archive » Новый дизайн:

    […] теперь используется замечательный скрипт lightgallery. Приветствуются комментарии по юзабельности того, что […]

  26. «Nemesis»:

    Я знаю почему появляется нижний скроллбар, FireFox считает ширину экрана вместе с боковым скроллбаром, получается, что бэкграунд выходит за рамки. В то время как, например, в IE вычисление ширины ведется с вычитанием ширины скроллбара.
    А почему нельзя исправить?
    Ведь можно (специально для Мозиллы прописать это вручную) из общей ширины вычесть ширину бокового скроллбара.

  27. admin:

    @Nemesis
    Да почему же нельзя исправить… Очень даже можно, я планирую исправить все найденные доселе баги и внести новые возможности в следующую версия. Я рассчитываю сделать это в течение месяца.

  28. «Nemesis»:

    Ок. Буду рад, если это будет исправлено. Конечно, это ни коем образом не вредит, но глаза мозолит. Спасибо! :)

  29. Иван:

    Здравствуйте! Обнаружил небольшой “баг”: в 86-й строке (this.loaderImage = ce(’img’,{src:”});) создается пустое изображение, но т.к. src у него равно пустой строке, некоторые браузеры (например FF) отправляют запрос на повторную загрузку текущего документа. На пользователе это никак не сказывается, но если страница использует какие-нибудь изменяющиеся переменные в сессии (каптча и т.п.), то этот запрос изменит состояние такой переменной. Но при этом то, что видит пользователь (изображение каптчи, etc) не изменится, что в итоге приводит к непонятным ошибкам.
    Предлагаю внести следующее исправление в строку 86:
    this.loaderImage = ce(’img’,{src:’javascript:void(0)’});
    таким образом ничего загружаться не будет.

  30. admin:

    @Иван
    Спасибо Вам за замечание.
    Честно говоря не знал, что FF отправляет запрос на повторную загрузку при пустом src в изображениях. Я постараюсь разобраться.

Оставить комментарий