2013-08-19 44 views
3

这是我在StackOverflow上的第一个问题,请原谅我可能做出的任何错误行为。砌体不能正确显示图像,直到多次调整大小

我花了几天试图解决这个问题,我自己,无济于事。我已经尝试了几个在stackoverflow和其他地方找到的代码片段,以尝试解决这个问题。

我正在使用Skeleton和Masonry的组合来构建我的投资组合网站。当我最初加载投资组合时,只有一张小图片。当我第一次调整大小时,它会显示所有列,但图像重叠。当我再次调整大小时,大部分瓷砖的高度都是正确的,但更长的瓷砖(JSTOR)仍然被切断。在第三次调整大小(以及所有后续访问)时,磁贴会正确显示。 (编辑:在页面刷新(不再单击链接,但浏览器刷新)网格也变得怪异....有时显示所有列,但一些图像堆叠,有时只显示1张小图片。) )

我对JS或jQuery没有最全面的理解,所以我很多尝试修复可能都很笨拙。我现在的假设是砌体在加载hte图像之前创建了网格......我尝试了各种代码位来解决这个问题,包括Desandro自己的图像加载片段和其他响应,像StackOverflow,如this one

现在我的网站应该住在new.rdhalexander.com。我不确定需要哪些其他信息......但我会密切关注这一点。

回答

6

看起来像图像还没有完全加载之前石工决定得到他们的大小。

您可以测试一些简单的CSS,你可能会看到一个延迟的加载,

.tile { 
    position:relative !important; 
} 

,并尝试长时间超时 像

setTimeout(function(){ 
    .. masonry blah .. 
},1000); 

然后解决的时机问题,这是砌体作者的建议。

$(window).load(function(){ $('#content').masonry(); }); 

link

+0

我把最后一行你给了,并重新制定我的脚本周围。一旦我意识到我将用我的具体论证替换“$('#content').masonry()”......我认为它工作!非常感谢你.....我觉得自己很傻,因为我尝试过并且没有工作的东西,一旦我用更批判的眼光看待它,就会工作。谢谢。 –

+0

王牌......在那里头挠了太久。 – vincentieo

1

如果有人从谷歌送过来,没有别的工作对我来说,除了迫使resize事件手动

window.dispatchEvent(new Event('resize'));