bootstrap+masonry.js写瀑布流

最近在用bootstrap写一个网站,其中有个图文展示的页面要用到瀑布流的效果。

因为项目要求,项目要以bootstrap为基准,不准私自添加内联样式、内部样式,所以,自己写瀑布流就不行了,所以,根据要求,百度查找相关资料,看到masonry.js.

个人认为这是一个非常好用的瀑布流插件。

下面说一下我在引用的过程中遇到的问题,一开始我用bootstrap栅格系统布局,代码如下

<div class="row masonry">

<div class="col-xs-12 col-sm-6 col-md-6 item">

<div class="thumbnail">

图文展示

</div>

</div>

<div class="col-xs-12 col-sm-6 col-md-6 item">

<div class="thumbnail">

<div>

图文展示

</div>

</div>

..........(省略n多图文展示)

</div>

引入masonry.js

<script type="text/JavaScript" src="js/jQuery-1.9.1.min.js"></script>

<script type="text/javascript" src="js/bootstrap.min.js" ></script>

<script type="text/javascript" src="js/masonry.pkgd.min.js" ></script>

<!--瀑布流-->

<script>

$('.masonry').masonry({

itemSelector: '.item'

});

</script>

本以为会有一个满意的结果,但是,万万没想到,万万没想到,图文展示错乱,重叠..这里我就不上图了,太渣。

后来对照masonry.js的相关文档看了一下,才知道,还要引入imagesLoaded.js。

因为图片没有加载出来时,会影响它的布局,导致瀑布流布局错误。我是这样理解的。如果理解错了,各位使劲吐槽我。

所以,最后再引入imagesLoaded.js

<script type="text/javascript" src="js/imagesloaded.pkgd.min.js" ></script>

最终调整代码为:

<script type="text/javascript" src="js/jquery-1.9.1.min.js"></script>

<script type="text/javascript" src="js/bootstrap.min.js" ></script>

<script type="text/javascript" src="js/masonry.pkgd.min.js" ></script>

<script type="text/javascript" src="js/imagesloaded.pkgd.min.js" ></script>

<!--瀑布流-->

<script>

<span > </span>$('.masonry').imagesLoaded(function() {

$('.masonry').masonry({

itemSelector: '.item'

});

});

</script>

最后,结果完美。