1

我在 div 中有一个画廊,最初设置为不显示,这是因为我在同一页面上有 5 个画廊,并且只想在任何时候显示一个。现在,每当我单击链接以显示其中一个画廊时,我都会遇到致命错误:

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

有没有办法解决这个问题?我的 javascript 知识不是很好,但任何帮助将不胜感激。

谢谢。

乔尼

4

3 回答 3

2

您需要在显示画廊容器的任何事件上初始化画廊实例。

我遇到了同样的问题——我的画廊默认在我的页面上是隐藏的(不显示),只有当您单击“查看画廊”链接时才会出现。使用 jQuery slideDown(将显示属性设置为阻塞),然后我才调用初始化。

$("#gallery-wrapper").galleria({ height: 500, width: 500 });
于 2011-12-19T17:41:30.530 回答
1

是这个功能吗

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

您可以重新调用

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

但也许使用唯一 ID,这样你就不会做不必要的工作

于 2011-07-12T03:15:46.850 回答
0

我会在元素获得高度后使用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();
});

我知道我所说的大部分内容与您最初的问题并不太相关,但我会从这里开始,它可能会解决您最初的问题。注意:我没有遇到您上面描述的相同错误

于 2011-07-12T01:19:37.187 回答