Masonry在几次调整大小之前无法正确显示图像
Masonry not displaying images correctly until several resizes
这是我在StackOverflow上的第一个问题,所以请原谅我可能犯的任何错误。
我花了几天时间试图独自解决这个问题,但没有成功。我尝试了在stackoverflow和其他地方找到的几个代码片段,试图解决这个问题。
我正在使用Skeleton和Masonry的组合来构建我的投资组合网站。当我最初加载公文包时,只有一个很小的图像。当我第一次调整大小时,它显示所有列,但图像重叠。当我再次调整大小时,大多数瓷砖的高度都是正确的,但较长的瓷砖(JSTOR)仍然被切掉。在第三次调整大小(以及所有后续访问)时,瓷砖会正确显示。
(编辑:在页面刷新时(不是再次单击链接,而是浏览器刷新),网格也不稳定。。。。有时显示所有列,但有些图像是堆叠的,有时只显示一张小图片。)
我对JS或jQuery没有最彻底的理解,所以我的很多修复尝试可能都很笨拙。在这一点上,我的假设是砖石结构在加载图像之前创建网格。。。我已经尝试了各种代码来修复这个问题,包括Desandro自己的imageload片段和StackOverflow上的其他响应,比如这个。
现在我的网站应该是new.rdhalexander.com。我不确定还需要什么其他信息。。。。但我会密切关注此事。
更新:参考@Stefan和他的例子。显然有一种新的方法。
在砖石决定确定尺寸之前,图像似乎还没有完全加载。
您可以用一些简单的css测试,您可能会看到延迟加载,
.tile {
position:relative !important;
}
并尝试长时间超时类似的东西
setTimeout(function(){
.. masonry blah ..
},1000);
然后为了解决时间问题,这就是《砖石》一书的作者所建议的。
$(window).load( function(){ $('#content').masonry(); });
链接
如果有人从谷歌来到这里,除了手动强制调整大小事件外,其他任何事情都对我无效
window.dispatchEvent(new Event('resize'));
为什么不都使用MasonyLayout功能?
官方声明:
当项目的大小发生变化,并且所有项目都需要重新布置。
所以这个重新命名砌体一段时间后。像这样,你可以在ready
上调用Masonry
$grid = $('.grid-class').masonry();
setTimeout(function() {
$grid.masonry('layout');
}, 500);
- 如何使用url加载程序在webpack中导入多个图像
- nodejs-expressjs上传图像并显示它们
- 使用JSP从服务器检索和显示图像
- 角度:在ng重复上切换图像
- 画廊图像未显示
- Phonegap-(安卓/iphone)多个图像的图像库出现问题
- Javascript排序的图像弹出窗口..可以't单独弹出
- 画布数据到图像
- Windows8应用程序(html&Javascript):从图片库(除了文件选择器)显示图像的另一种方式
- 使图像在单击时展开到不大于浏览器
- Html页面上的多个Base64图像和平滑加载
- UIAutomation放大图像
- 使用javascript在Flash中加载外部图像
- 可以在这里为背景图像设置滤镜吗
- 当图像转换为本地存储的DataURL时,EXIF被删除
- 使用 js 将背景图像设置为 HTML
- Javascript将图像src更改为淡入淡出
- 无法在本地计算机中将画布另存为图像
- 压缩phonegap中ios的图像插件
- 如何在鼠标悬停时在另一个图像上滑动图像.