2015-10-22 2 views
3

Я объединил некоторые jQuery: Flexslider и масонство. FlexSlider инициируется global.js:Объединение Flexslider с масонством

$(window).load(function() { 

    // Banner FlexSlider 
    $('#side-slider').flexslider({ 
     animation: 'slide', 
     slideshow: true, 
     smoothHeight: false, 
     controlNav: false, 
     directionNav: false, 
     slideshowSpeed: 5000, 
     controlsContainer: ".flexslider-container", 
    }); 

}); // End on window load 

Кладка спусков в nwmasonry_init.js:

jQuery(document).on('ready', function() { 
    var $ = jQuery; 

    //Masonry 
    var container = document.querySelector('.overzicht'); 
    var msnry = new Masonry(container, { 
     itemSelector: '.bedrijven', 
     gutter: '.gutter-sizer', 
     transitionDuration: 0, 
    }); 
    }); 

На начальном PageLoad, как можно увидеть здесь http://nieuws.ditisonzewijk.nl/category/brandevoort/ ползунок на вершине в середине перекрывается с другим блоком контента.

Как только вы измените размер окна, ползунок изменит его ширину и, следовательно, высоту ползунка будет исправлено.

У кого-нибудь есть идея о том, как получить высоту слайдера прямо на начальной нагрузке?

+0

это может быть проблема синхронизации; вместо того, чтобы загружать его .ready() try .load() event – maioman

+0

Я пробовал это, но это не сработает. – Arne

ответ

0

Вам необходимо использовать imagesloaded.js. Перекрытие происходит при каменной кладке перед загрузкой всех изображений. Загрузите скрипт с изображениями и воспользуйтесь этим кодом:

jQuery(document).on('ready', function() { 
var $ = jQuery; 

//Masonry 
var container = document.querySelector('.overzicht'); 
imagesLoaded(container, function() { 
var msnry = new Masonry(container, { 
    itemSelector: '.bedrijven', 
    gutter: '.gutter-sizer', 
    transitionDuration: 0, 
}); 
}); 
}); 
+0

Thanx для ответа. Я только что пробовал это, но вижу некоторые ошибки в консоли: EventEmitter не является функцией и container.imagesLoaded не является функцией – Arne

+0

См. Мой обновленный код. – Macsupport

+0

Я тогда получаю: Uncaught TypeError: EventEmitter не является функцией, а Uncaught ReferenceError: imagesLoaded не определен – Arne

0

Я нашел исправление для этого, хотя это не очень. Я положил задержку на инициализацию кладки.

function loadMasonry() {  
***fire masonry***  
}   
setTimeout(loadMasonry, 500); 

Теперь он работает правильно. Кто-нибудь знает, как исправить это правильно?

+0

Или я мог бы скрыть масонство из свойства функции запуска Flexslider. (Срабатывает, когда ползунок загружает первый слайд.) Это похоже на лучший вариант. – Arne

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