javascript - Masonry 问题 - 图像首先垂直加载,然后重新排列。

标签 javascript html jquery-masonry masonry

示例 - http://paulmatheson.net/photography/nature.html

我的 masonry 代码:

<script type="text/javascript">
var $container = jQuery('#masonry-grid'); 
$container.imagesLoaded(function() {
  $container.masonry({
    columnWidth: 240,
    gutter: 10,
    itemSelector: '.grid-item'
  });
  $container.imagesLoaded.done( function(instance) {
    $container.masonry('layout');
  });
});

我是否错误地调用了它?

最佳答案

已编辑 您的 $container.imagesLoaded.done 函数不正确,它是 $container.imagesLoaded().done。它也在 $container.imagesLoaded(function() 中,但它不应该在其中。您不需要像这样调用 imagesloaded 两次并再次布局 masonry ..

您的原始图像加载代码在这里:

var $container = jQuery('#masonry-grid'); 
$container.imagesLoaded(function() {
$container.masonry({
columnWidth: 240,
gutter: 10,
itemSelector: '.grid-item'
});
$container.imagesLoaded.done( function(instance) {
$container.masonry('layout');
});
});

需要:

var $container = jQuery('#masonry-grid'); 
$container.imagesLoaded(function() {
$container.masonry({
columnWidth: 240,
gutter: 10,
itemSelector: '.grid-item'
});

}); 我还建议在 masonry.js 之前加载 imagesloaded.js

如果你确实必须使用done方法,你可以使用以下代码:

var $container = jQuery('#masonry-grid'); 
$container.imagesLoaded(function() {
$container.masonry({
columnWidth: 240,
gutter: 10,
itemSelector: '.grid-item'
});

}).done( function(instance) {
$container.masonry('layout');
});

关于javascript - Masonry 问题 - 图像首先垂直加载,然后重新排列。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45356757/

相关文章:

Javascript字符串解析无故改变斜杠和空格

javascript - 从一个 Action 函数清除 React Reflux 中多个 Store 的数据

php - 包括标题页 session 错误

javascript - 无限石工卷轴不起作用

javascript - 创建 TCP 服务器时连接的标识符是什么?

html - 如何避免文本断行?

jquery - 下拉菜单中的 Bootstrap 选项卡 Pane

javascript - jquery Masonry,在div的中心添加一个新的div#container

javascript - Masonry 不是 Ember Cli 中的函数

javascript - 我希望让我的代码验证一个字段以确保它是四位数字。我怎样才能做到这一点?