Как / где определить значения по умолчанию для fancybox? - PullRequest
8 голосов
/ 16 августа 2011

Допустим, это моя конфигурация fancybox:

   $(".fancybox").fancybox({
      'transitionIn':'fade',
      'transitionOut':'fade',
      'speedIn':150,
      'speedOut':150,
      'changeSpeed':150,
      'changeFade':150,
      'overlayOpacity':0.1,
      'overlayColor':'#000000',
      'padding':0,
      'margin':20,
      'titleShow':false,
      'centerOnScroll':true
   });

Но я хотел бы как-то определить конфигурацию как fancybox по умолчанию, чтобы, следовательно, когда я связывал элемент,может сделать только это:

$(".newElement").fancybox();

И он автоматически получит мой конфиг.

Ответы [ 4 ]

19 голосов
/ 20 марта 2012

Fancybox имеет внутренний набор значений по умолчанию, которые можно легко переопределить.

Для Fancybox 1.3 используйте:

jQuery.extend(jQuery.fn.fancybox.defaults, {
  hideOnOverlayClick: false,  //
  overlayOpacity: 0.75,       // <-- just an example
  overlayColor: '#222'        //
});

Для Fancybox 2.0 «.fn» отбрасывается:

jQuery.extend(jQuery.fancybox.defaults, {
  type: 'ajax'  // <-- for example
});

Файл javascript Fancybox должен быть загружен в первую очередь.

2 голосов
/ 15 февраля 2013

Вы можете использовать JQuery Extend для объединения содержимого двух или более объектов.

Здесь конфигурация:

var fancyboxConfig = {
    'transitionIn':'fade',
    'transitionOut':'fade',
    'speedIn':150,
    'speedOut':150,
    'changeSpeed':150,
    'changeFade':150,
    'overlayOpacity':0.1,
    'overlayColor':'#000000',
    'padding':0,
    'margin':20,
    'titleShow':false,
    'centerOnScroll':true
};

Затем вы можете использовать затем непосредственно:

$(".newElement").fancybox(fancyboxConfig);

или объединить / переопределить их:

$(".newElementNoEffect").fancybox(
    $.extend({}, fancyboxConfig, {
        openEffect: 'none',
        closeEffect: 'none',
    })
);

Подробнее: http://api.jquery.com/jQuery.extend/

2 голосов
/ 16 августа 2011

В соответствии с документацией здесь: http://fancybox.net/api

Вы можете передать опции в качестве объекта ключа / значения в функцию fancybox () или изменить их в нижней части файла FancyBox JS

0 голосов
/ 31 октября 2017

Вот как я это делаю (согласно последней (fancybox3) документации ):

         $.fancybox.defaults.clickOutside = 'close'

         $.fancybox.defaults.slideShow = {
             autoStart : false,
             speed     : myGallerySlideshowSpeed
         }

И так далее. То есть я ничего не инициирую, я просто помечаю свои элементы как data-fancybox="gallery" и использую приведенный выше код для установки значений по умолчанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...