2014-10-01 7 views
1

Я использую fancybox 2.1.5, и я пытаюсь изменить размер модальных изображений, прежде чем их всплывающее окно. Кажется, что он работает не так, как ожидалось, изображения не изменяются. Я не уверен, что я делаю неправильно:Fancybox изменение размера при загрузке не работает должным образом

jQuery(document).ready(function() { 
    jQuery('#content').find('img').each(function() { 
     jQuery(this).parent('a').fancybox({ 
      type: 'image', 
      autoSize : false, 
       beforeLoad : function() {   
        this.width = 300; 
        this.height = 150; 
       } 
     }); 
    }); 
}); 

Рабочая Fiddle:

http://jsfiddle.net/1a02ehua/1/

ответ

0

Я использовал старую, устаревшую функцию beforeLoad, которая работает с версиями до FancyBox 2.1.5 , После некоторой корректировки новая, работает, функция выглядит следующим образом:

jQuery(document).ready(function() { 
    jQuery('#content').find('img').each(function() { 
     jQuery(this).parent('a').fancybox({ 
      beforeShow : function() {   
       this.width = 500; 
       this.height = 300; 
      } 
     }); 
    }); 
}); 

Примечание изменить '' beforeShow

Спасибо.

+1

Для записи: 'beforeLoad' является ** не ** устаревшим обратным вызовом и по-прежнему действительным параметром API для v2.1.5 [См. Документацию] (http://fancyapps.com/fancybox/#docs) (« обратные вызовы » «tab» beforeLoad и 'beforeShow' предназначены для разных событий:' this.width' не будет работать внутри 'beforeLoad', потому что вы пытаетесь установить свойство на элемент, который не был загружен. – JFK

+0

ах, спасибо за это объяснение! – EHerman

Смежные вопросы