Содержит галерею Galleria в div, который не отображает ничего - PullRequest
1 голос
/ 12 июля 2011

У меня есть галерея в div, которая изначально не отображает ни одной, это потому, что у меня есть 5 из этих галерей на одной странице, и я хочу, чтобы только одна отображалась одновременно.Теперь, когда я нажимаю на ссылку, чтобы отобразить одну из галерей, я получаю фатальную ошибку:

Fatal error: Could not extract a stage height from the CSS. Traced height: 0px.

Есть ли способ обойти это?Мои знания JavaScript не велики, но любая помощь будет принята с благодарностью.

Спасибо.

Джони

Ответы [ 3 ]

2 голосов
/ 19 декабря 2011

Вам нужно инициализировать экземпляр галереи при любом событии, которое отображает контейнер галереи.

У меня возникла та же проблема - моя галерея скрыта (не отображается) по умолчанию на моей странице и толькопоявляется при нажатии на ссылку «Просмотр галереи».Используя jQuery slideDown (который устанавливает свойство display для блокировки), только тогда я вызываю initialize.

$("#gallery-wrapper").galleria({ height: 500, width: 500 });
1 голос
/ 12 июля 2011

Является ли эта функция

$(".portfolio-links a").click(function() {});

Вы можете перезвонить

$(".gallery").galleria({
    width: 605,
    height: 550,
    autoplay: 3000,
    transition: 'fadeslide'
});

Но, возможно, используйте уникальные идентификаторы, чтобы не выполнять ненужную работу

0 голосов
/ 12 июля 2011

Я бы использовал javascript, чтобы скрыть элемент после того, как он получит высоту. Проблема в том, что он не может получить высоту элемента display:none;, его структура похожа на призрак, нематериальный.

Также я думаю, что самое простое, что вы можете сделать, чтобы исправить свой сайт, это добавить тег rel к каждой ссылке, относящейся к ссылке, такой как rel="graphic" и rel="packaging", добавить похожий тег к каждому тегу div.

Используйте это для переключения различных галерей. Также вы ориентируетесь только на одну галерею с плагином jquery цикл, я бы предложил:

$('.portfolio-body').cycle({
    fx: 'scrollLeft',
    speed:   2000, 
    timeout: 3000, 
    next:   '#catalogue-display'
});

Таким образом, он нацелен на всех из них. Также плагин Galleria, кажется, не работает, по крайней мере, в примере с jsFiddle. Я предполагаю, что это будет конфликтовать с плагином jQuery Cycle.

Я бы также изменил обработчик onClick, чтобы использовать rel, чтобы знать, какую галерею отображать. И чтобы спрятать остальных, используя что-то как таковое.

$(".portfolio-links a").click(function() {
    $('.portfolio-body').hide();
    var rel = $(this).attr("rel");
    $('.portfolio-body[rel="'+rel+'"').show();
});

Я знаю, что большинство из того, что я сказал, не слишком уместно с вашим первоначальным вопросом, но я бы начал здесь, это может исправить вашу первоначальную проблему. Примечание: я не столкнулся с той же ошибкой, которую вы описали выше

...