API

<script>
 $(function () {
 // 1. Инициализировать fotorama вручную.
 var $fotoramaDiv = $('#fotorama').fotorama();

 // 2. Получить объект API.
 var fotorama = $fotoramaDiv.data('fotorama');

 // 3. Осмотрим его в консоли.
 console.log(fotorama);
 });
</script>

<div id="fotorama"
 class="fotorama"
 data-auto="false">
<!-- ↑ Important attribute. -->
 <img src="1.jpg">
 <img src="2.jpg">
</div>

Переменные

fotorama.index число

Нулевое положение фотографии в пределах всех Фоторам на странице.

fotorama.size число

Количество кадров в Фотораме.

fotorama.data массив

fotorama.options объект

fotorama.activeIndex число

Нулевое положение активного кадра.

fotorama.activeFrame объект

Объект данных кадра со следующими ключевыми свойствами:

  • img строка
    URL изображения.
  • thumb строка
    URL уменьшенного изображения.
  • full строка
    URL изображения в полноэкранном режиме.
  • id строка
    Данный идентификатор.
  • $stageFrame jQuery
    Элемент DOM активного кадра каскада. Завернуто в jQuery.
  • $navDotFrame jQuery
    Элемент DOM активного навигационного фрейма с точкой в ​​стиле iPhone. Завернуто в jQuery.
  • $navThumbFrame jQuery
    Элемент DOM активного навигационного фрейма с миниатюрой. Завернуто в jQuery.

Методы

fotorama.show(index)

Показывает кадр с заданным index, нулевым числом:


// Переходим к первому кадру:
fotorama.show(0);

// Четвертый:
fotorama.show(3);

... или ключ-строка:


// следующий:
fotorama.show('>');

// предыдущий:
fotorama.show('<');

// последний:
fotorama.show('>>');

// id атрибута:
fotorama.show('some-id');

fotorama.show (options)

Показывает кадр с заданным index и в заданное время (time):


fotorama.show({
 index: 1, // The second frame.
 time: 500 // Half-second transition.
});

fotorama.startAutoplay ([интервал])

Запуск слайд-шоу с заданным interval в миллисекундах. По умолчанию interval составляет 5000, 5 секунд.

fotorama.stopAutoplay()

Остановить слайдшоу..

fotorama.requestFullScreen()

Открывает fotorama в полноэкранном режиме, если разрешено в настройках.

fotorama.cancelFullScreen()

Выход из полноэкранного режима.

fotorama.playVideo()

Запускает видео, если оно есть у активного фрейма.

fotorama.stopVideo()

Остановка и выгрузка воспроизводимого видео.

fotorama.resize(options)

Изменяет размер fotorama, options - объект с width, minwidth, maxwidth, height, minheight, maxheight и ratio, которое вы можете передать, чтобы заставить определенный размер:


fotorama.resize({
 width: 500,
 height: 333
});

Анимируйте изменения, передав продолжительность в миллисекундах в качестве второго аргумента:


fotorama.resize({
 width: 333,
 height: 500
}, 1000);

fotorama.setOptions(options)

Манипулирует настройками fotorama во время выполнения:


fotorama.setOptions({
 nav: false,
 arrows: false
});

fotorama.load(data)

Загружает новые данные (data) в fotorama. Он должен быть структурирован как массив и следовать тем же шаблонам, что и исходные данные:


fotorama.load([
 {img: '1.jpg', thumb: '1-thumb.jpg'},
 {img: '2.jpg', thumb: '2-thumb.jpg'}
]);

fotorama.push(frame1, ..., frameN)

Добавляет данные фреймы к fotorama:


fotorama.push({img: '3.jpg', thumb: '3-thumb.jpg'});

fotorama.pop()

Удаляет последний кадр.

fotorama.shift()

Удаляет первый кадр.

fotorama.unshift(фрейм1, ..., фреймN)

Добавляет один или несколько кадров к началу фотогалереи.

fotorama.splice(index , howMany[,-фрейм1,-...,-фреймN]])

Изменяет массив данных, добавляя новые кадры при удалении старых кадров. Он работает так же, как Array.splice:


// Удаляем два кадра после первого:
fotorama.splice(0, 2);

// Замена последнего кадра:
fotorama.splice(-1, 1, {img: 'new-last.jpg'});

fotorama.reverse()

Делает задний ход fotorama в контейнере.

fotorama.sort([compareFunction])

Сортирует кадры как Array.sort:

items.sort(function (frameA, frameB) {
 if (frameA.img > frameA.img) return 1;
 if (frameB.img < frameB.img) return -1;
 return 0;
});

fotorama.shuffle()

Перемешать кадры.

fotorama.destroy()

Убивает fotorama и восстанавливает исходное содержимое.

События

Прикрепите обратные вызовы к событиям Fotorama. Каждый обратный вызов содержит объект события и ссылку на API в качестве аргументов функции:


$('.fotorama').on('fotorama:ready', function (e, fotorama) {
 console.log(e.type, fotorama.activeIndex);
});

Некоторые из обработчиков содержат третий аргумент extra с дополнительными данными:


$('.fotorama').on(
 'fotorama:show fotorama:showend',
 function (e, fotorama, extra) {
 console.log(e.type + (extra.user ? ' after user’s touch' : ''));
 console.log('transition duration: ' + extra.time);
 }
);


$('.fotorama').on('fotorama:load', function (e, fotorama, extra) {
 console.log(extra.src + ' is loaded');
});

Рекомендуется начинать прослушивание событий до инициализации. Вот фрагмент, чтобы изучить все события Fotorama в консоли:

<script>
 $(function () {
 $('.fotorama')
 // Listen to the events
 .on('fotorama:ready ' + // Fotorama полностью готова
 'fotorama:show ' + // Начало перехода к новому кадру
 'fotorama:showend ' + // Конец переходного периода
 'fotorama:load ' + // Загружено изображение с кадром для некоторого кадра
 'fotorama:error ' + // Изображение сцены какого-то кадра разбито
 'fotorama:startautoplay ' + // Запускается показ слайдов
 'fotorama:stopautoplay ' + // Слайд-шоу остановлено
 'fotorama:fullscreenenter ' + // Вход в полноэкранный режим Fotorama 
 'fotorama:fullscreenexit ' + // Выход из полноэкранного режима Fotorama
 'fotorama:loadvideo ' + // Загружено видео в iframe
 'fotorama:unloadvideo', // Удалено видео из iframe
 function (e, fotorama, extra) {
 console.log('## ' + e.type);
 console.log('active frame', fotorama.activeFrame);
 console.log('additional data', extra);
 }
 )
 // Initialize fotorama manually
 .fotorama();
 });
</script>

<div class="fotorama"
 data-auto="false">
<!-- ↑ Important attribute. -->
 <img src="1.jpg">
 <img src="2.jpg">
</div>