Фоторама 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/
Красоту на сайте помогли навести Максим Ткачук и Денис Талала. Максим Ильяхов сделал тексты ещё более мощными и понятными. Кучу готовых рецептов использования Фоторамы заверстал Артём Сапегин. А Коля Митин помог с ПХП и я прикрутил проверку домена на наличие лицензии (если вашего сайта с фоторамой там нет, напишите письмо, пожалуйста). Спасибо вам, друзья!
Круто! Поздравляю! Спасибо!
Ура! Столько нужного появилось в новой версии.
Очень круто)
Спасибо большое!
Если бы она ещё 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
Ребята спеку писали, старались, а ты просто классы раздаёшь, никакой будущей совместимости.
Спасибо большое и дальнейшего развития!
А как подключить переключение картинок по клавиатуре? Сам не смог сообразить, как через api...