bootstrap+masonry.js写瀑布流

本文介绍如何在Bootstrap基础上利用Masonry.js插件实现瀑布流布局,并解决图文展示错乱问题。通过引入imagesLoaded.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 style="white-space:pre"> </span>$('.masonry').imagesLoaded(function() {
$('.masonry').masonry({
itemSelector: '.item'
});
});
</script>


最后,结果完美。

转载于:https://www.cnblogs.com/ariclee/p/6814241.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值