砌体图像加载不起作用

时间:2014-12-07 17:24:38

标签: javascript html jquery-masonry masonry

我有

<div class="js-masonry" data-masonry-options='{ "columnWidth": 50, "itemSelector": ".item", "gutter" : 20 }'>
      <div class="item"><a href="/photo/side-portrait"><img src="/assets/uploads/_default/T96A9589-2.jpg" alt="T96A9589-2" width="909" height="1364"/></a></div>
      <div class="item"><a href="/photo/butterfly"><img src="/assets/uploads/_default/T96A7105-2.jpg" alt="T96A7105-2" width="2046" height="1364"/></a></div>
      <div class="item"><a href="/photo/white-shirt"><img src="/assets/uploads/_default/T96A6883.jpg" alt="T96A6883" width="2046" height="1364"/></a></div>
</div>

使用标准砌体功能可以正常工作,但是砌体试图在加载某些图像之前进行布局,因此它看起来很乱。

我尝试添加

$(function() {
        var $container = $('.js-masonry');
        // initialize Masonry after all images have loaded
        $container.imagesLoaded( function() {
            $container.masonry();
        });
    });

但它没有帮助!

问题是我混合了数据属性和js代码吗?或者是我看不到的东西? 非常感谢任何帮助!

已添加 - .item css

width: 49%;
margin-bottom: 15px;

2 个答案:

答案 0 :(得分:3)

啧。问题是我没有包含imagesloaded插件。我没有意识到它与砌体库是分开的。强烈抵制。

答案 1 :(得分:0)

尝试width =“100%”,如下所示。在我使用100%宽度之前,我也遇到了问题。

<div class="js-masonry" data-masonry-options='{ "columnWidth": 50, "itemSelector": ".item", "gutter" : 20 }'>
      <div class="item"><a href="/photo/side-portrait"><img src="/assets/uploads/_default/T96A9589-2.jpg" alt="T96A9589-2" width="100%" height="1364"/></a></div>
      <div class="item"><a href="/photo/butterfly"><img src="/assets/uploads/_default/T96A7105-2.jpg" alt="T96A7105-2" width="100%" height="1364"/></a></div>
      <div class="item"><a href="/photo/white-shirt"><img src="/assets/uploads/_default/T96A6883.jpg" alt="T96A6883" width="100%" height="1364"/></a></div>
</div>