Новый способ инициализации Фоторамы
В свежей версии Фоторамы я добавил новый способ её инициализации. Теперь в большинстве случаев можно обходится без вот такого инлайн-джаваскрипта:
$(function(){<br> $('.fotorama').fotorama();<br> });
Просто добавляете класс fotorama и блок автоматически превращается в Фотораму:
<div class="fotorama"><br> <img src="1.jpg"><br> <img src="2.jpg"><br> <img src="3.jpg"><br> </div>
Раньше такой способ тоже существовал, но я о нём не рассказывал, потому что ничего нельзя было настроить — инициировалась дефолтная Фоторама. Теперь опции можно указывать с помощью атрибутов data-*:
<div<br> class="fotorama"<br> data-backgroundColor="#797775"<br> data-thumbsPreview="false"<br> data-margin="0"<br> data-resize="true"<br> ><br> <img src="1.jpg"><br> <img src="2.jpg"><br> <img src="3.jpg"><br> </div>
А раньше было только так:
<div class="fotorama"><br> <img src="1.jpg"><br> <img src="2.jpg"><br> <img src="3.jpg"><br> </div><br> <script><br> $(function(){<br> $('.fotorama').fotorama({<br> backgroundColor: '#797775',<br> thumbsPreview: false,<br> margin: 0,<br> resize: true<br> });<br> });<br> </script>
Так можно указать все опции, кроме data, html и onShowImg. Прежний способ инициализации и настройки работает без изменений.
Интересно. Но без html не будет крутых подписей, а без onShowImg — автоматического переключения.
Есть что-то брезгливое для меня в атрибуте data-backgroundColor=’#797775’. Ты же понимаешь, что подавляющее большинство из тех, кто будет ставить Фотораму, отлично знают, что такое CSS. А ты им всем рекомендуешь писать стили сначало в JS, а потом — внезапно! — прямо в HTML. Странно это.
Понимаю тебя.
Сначала среди опций появились отступы, паддинги, размер рамки вокруг активной превьюшки — всё это нужно отдавать именно скрипту для правильного подсчёта позиции, пропорций. А дальше я размышлял так — раз уж человек начал настраивать галерею под себя, то ему наверняка удобнее сделать это в одном месте, а не распыляться между JS и CSS. Так появились те немногие опции цвета и фона для настройки шкурки.
Понятное дело, что для глубокой переделки нужно переопределять правила из fotorama.css.
И вот эти опции переехали в HTML, ради более удобного способа инициализации Фоторамы, например, прямо в теле статьи.
Новый способ чем-нибудь лучше старого?
Мне он кажется более компактным и быстрым, без левых кусков джаваскрипта.
Денис, в первую очередь это — не что-то лучше, а тест-драйв технологий. В данном случае — data-атрибуты.
Эм, ты хочешь сказать, что без задания констант ничего не посчитать налету? Что-то не верится, остальные же скрипты как-то работают без конфигов в динамических условиях.
Посчитать можно, но не всё и не всегда правильно. Например правила кропа или размеры отступов для невписывающейся по соотношению сторон фотки.
Или вот — я долго выбирал способ вёрстки фоток в большую бесконечную ленту, пробовал и инлайн-блоки, и флоаты, но остановился на абсолютном позиционировании по некоторым причинам. Поэтому мне нужно знать какой отступ сделать между фотками. И т. д.
Но вообще, большинство опций появилось за компанию, для возможности плаг-энд-плея.
Про другие скрипты могу сказать только то, что они другие и то, что некоторые из них тоже не брезгуют константами.
Как добавить fancybox при клике на увеличенные картинки в слайдере? Сейчас при клике идет прокрутка к следующему слайду.
Нужно отключить %%pseudoClick%%, и дописать небольшую функцию, отлавливающую клик и знающую индекс текущей фотографии: http://jsfiddle.net/artpolikarpov/34xwP/.
И как-то из этой функции запускать fancybox.
Я это сделал через вставку произвольного HTML в Фотораму и плагин jQuery Tools Overlay.
Осторожнее, Артём. Открываешь ворота в ад. Твоя фоторама может рухнуть под собственной тяжестью, как римская империя.
Коля, тебе конкретно эта фича не нравится? Но она почти не добавила кода. Или?
Могу ошибаться, но ты пытаешься двигаться по пути «вытащить как можно больше настроек нажуру». То есть в прямо противоположную сторону от принципа «интерфейса нет, а функция выполнятеся».
Идеальный интерфейс фоторамы:
Почему-то запостился комментарий...
...
<div class=«fotorama»>
<img src=«1.jpg> <img src=»2.jpg«> <img src=»3.jpg«>
</div>
и никакого JS, работает как волшебная коробочка. В этом состоянии Фоторама должна быть супер-идеальной, подходящей для 90% пользователей.
Для остальных 10%, кому вдруг надо что-то менять во внешнем виде или поведении придётся разбираться как устроен fotorama.css или курить настройки через JS.
Я написал это потому, что продукт, на мой взгляд дожен быть сочни из коробки, нежели предлагать пользователю миллион способов настроить его под себя. И именно на дефолтное состояние надо тратить большую часть сил.
Так всё и делаю. Никакого JS, забить на указание ширины и высоты, клёвые дефолтные пресеты...
Но без настроек не обойтись, и почему бы в блоге не написать о них.
За %%.fotorama%% спасибо, .%%fotorama_auto%% — явно перебор.