Фоторама 3.0

Три дня назад, 23 июня, Фотораме исполнился год. По этому случаю я круто обновил и Фотораму, и её сайт.

Некоторые новые важные штуки версии 3.0 ниже.

Упрощённое добавление ХТМЛ
Больше не нужно писать хитрые скрипты, чтобы запихнуть в фотораму ХТМЛ, просто пишите:

<div class="fotorama" data-width="500" data-height="333">
  <div>1</div> <div>2</div> <div>3</div>
</div>

Можно использовать любые теги, не только дивы.

У Фоторамы нет никаких дефолтных стилей для ХТМЛ, задавайте любые классы и пишите ЦСС самостоятельно. Если фрагмент текста нужен над фоткой, укажите путь к ней через спецатрибуты:

<div class="fotorama" data-width="500" data-height="333">
  <div data-img="1.jpg">1</div>
  <div data-img="2.jpg">2</div>
  <div data-img="3.jpg">3</div>
</div>

Фотку можно поставить и внутрь дива, тогда она не будет обрабатываться фоторамой. Для превьюшек предусмотрен атрибут data-thumb, для штатных подписей — data-caption.

Как легко я сверстал бы галерею на главной Гетвеара, если у меня тогда была Фоторама!

Умное слайд-шоу
Раньше просто отрабатывал таймаут и фотка перелистывалась. Тупо было, если в заданный интервал фотка не успевала загрузиться и один прелоадер сменялся другим. Теперь фоторама ждёт загрузки фотографии, показывает сколько нужно, мотает дальше. Ещё умеет останавливать проигрывание после первого касания пользователя, эту фичу можно отключить через stopAutoplayOnAction:false.

Умная инициализация
Фоторама научилась инициализироваться в скрытых через display:none блоках. Многие хотели поставить фотораму в скрытом блоке, который открывался бы по ссылке. Или несколько фоторам перещёлкивать табами. Сделать это было сложно, так как фоторама ломалась — при инициализации ей нужно определять размеры фоток, а сделать это в скрытом блоке невозможно. Теперь фоторама ждёт того момента, когда окажется видимой и быстренько инициализируется. Если скрыть её на полпути, она тоже это поймёт и приостановит работу. Круть! Такое вообще никакая галерея не умеет.

Минимальные и максимальные размеры
Параметры minWidth, maxWidth, minHeight, maxHeight можно использовать вместе с процентным заданием ширины.

Отключение ЦСС-анимаций
Опция cssTransitions:false переводит фотораму в режим совместимости. Бывает, на сложных страницах, дополнительные анимации и трансформации ломают вёрстку или конфликтуют с другими анимациями. В таком случае можно пожертвовать аппаратным ускорением в Вебките ради общей железобетонности конструкции.

Фейд
Раньше никто не догадывался, что фейд включается через touchStyle:false; теперь всё очевидно — transition:’fade’ (’slide’ по умолчанию). Крутость фоторамного фейда, а точнее наплыва, я уже показывал.

Базовый дизайн
Сначала я думал не трогать дефолтные настройки, но потом слегка подтюнил, не удержался. Всё стало на 2 пикселя изящнее, тёмный фон сменился светлым, добавился приятный ламповый шум под фотками и превьюшками.

Прелоадер
Убил ГИФ. Он был чувствителен к фону и из-за этого у меня даже была опция preloader:’white’ для светлого фона — явный левак. Я нарисовал свою фононезависимую 12-кадровую крутилку в спрайте, которую анимирую скриптом:

Ещё
Опции: thumbsCentered, hideNavIfFullscreen, cropToFitIfFullscreen, fitToWindowHeightOffset. Новые колбеки: onFullscreenOpen, onFullscreenClose, onTransitionStop.

Исправлены баги под Андроидом.

Разобрался со странностями поведения Фоторамы на страницах, где кроме Джейквери был ещё и Мутулз.

Слегка поправлена физика. Тонна улучшений под капотом.

Идите на сайт, берите Фотораму, изучайте примеры кода, читайте новую лицензию, наконец:

http://fotoramajs.com/

Красоту на сайте помогли навести Максим Ткачук и Денис Талала. Максим Ильяхов сделал тексты ещё более мощными и понятными. Кучу готовых рецептов использования Фоторамы заверстал Артём Сапегин. А Коля Митин помог с ПХП и я прикрутил проверку домена на наличие лицензии (если вашего сайта с фоторамой там нет, напишите письмо, пожалуйста). Спасибо вам, друзья!

Поделиться
Отправить
Запинить
8 комментариев
Артём Самохин

Круто! Поздравляю! Спасибо!

Денис Талала

Ура! Столько нужного появилось в новой версии.

Илья

Очень круто)
Спасибо большое!

Andrew Gurylyov

Я нарисовал свою фононезависимую 12-кадровую крутилку в спрайте, которую анимирую скриптом

Если бы она ещё svg была, цены бы не было! Хотя и так лучшая галерея, что уж тут.

В примере респонсив блога фоторама какая-то крайне резкая. Расширяется и сужается скачками. Это нельзя поправить?

Никита Демидов

За «умнаю инициализацию» — спасибо!
Если бы ещё в API Яндекс.Карт так сделали б… ;-)

Вадим Макеев

Поздравляю с запуском! Правда немного странно сделана локализация — даже без попытки использовать атрибут lang и всё, что с ним связано.

http://www.whatwg.org/specs/web-apps/current-work/multipage/elements.html#the-lang-and-xml:lang-attributes
http://www.w3.org/International/questions/qa-css-lang.en.php

Ребята спеку писали, старались, а ты просто классы раздаёшь, никакой будущей совместимости.

сamington.com

Спасибо большое и дальнейшего развития!

Никита Литвинков

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

Популярное