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 style="white-space:pre"> </span>$(‘.masonry‘).imagesLoaded(function() {
$(‘.masonry‘).masonry({
itemSelector: ‘.item‘
});
});
</script>

最后,结果完美。

时间: 2024-12-20 02:46:14

bootstrap+masonry.js写瀑布流的相关文章

一步步教你js原生瀑布流效果实现

一步步教你js原生瀑布流效果实现 什么是瀑布流效果 首先,让我们先看一段动画: 在动画中,我们不难发现,这个动画有以下特点: 1.所有的图片的宽度都是一样的 2.所有的图片的高度是不一样的 3.图片一张挨着一张竖直排列 4.鼠标向下滚动,一直不停的加载图片 5.浏览器的宽度改变,图片的列数会进行相应的更改 那么这种效果类似现实生活中的瀑布,所以我们叫它瀑布流的效果. Js原生瀑布流效果的实现 从上述分析中,我们可以把整个效果分为以下四个部分: html+css界面搭建 瀑布流效果 浏览器向下滚动

原生JS实现瀑布流

浏览网页的时候经常会遇到瀑布流布局的网站.也许有些读者不了解瀑布流.瀑布流,又称瀑布流式布局.是比较流行的一种网站页面布局,视觉表现为参差不齐的多栏布局,随着页面滚动条向下滚动,这种布局还会不断加载数据块并附加至当前尾部.比如下面图片的效果,就是一个典型的瀑布流. 网上有很多JQ的瀑布流插件,而且都写好了兼容,都可以尝试去使用,这里只是跟大家分享一下原生js实现瀑布流的效果,一起学习. 一步一步来: 首先新建一个文件,就叫瀑布流.html吧. <!doctype html> <html

js图片瀑布流

一个简单的图片瀑布流 首先准备一个html文件,css用到很少,所以写在html里,还需要一个js文件及几张图片(分辨率随意) html的代码: <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <style> body { margin: 0px; padding: 0px;

JS图片瀑布流制作

这里为大家带来了两种通过js制作图片瀑布流的方法. 一.绝对定位法 计算每个元素的绝对位置进行设置. <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0">

js实现瀑布流以及加载效果

一.瀑布流是个啥? 瀑布流,是比较流行的一种网站页面布局,视觉表现为参差不齐的多栏布局,随着页面滚动条向下滚动,这种布局还会不断加载数据块并附加至当前尾部. 最早采用瀑布流布局的网站是Pinterest,逐渐在国内流行开来,比如我们熟知的百度图片的布局,在"很久"以前,百度图片还是需要一页一页的点击进行查看更多图片,而现在的瀑布流布局使用户查找图片更加方便. 二.瀑布流的优缺点 优点: 1.节省了页面的空间,不再需要导航和页码按钮. 2.增强了用户的体验,使用户的体验更多的是在于浏览图

js实现瀑布流

下午查找了瀑布流的相关原理,找了一些css3实现的还有js实现的,最后总结了一些比较简单的,易懂的整理起来 1.css3实现 只要运用到    column-count分列 column-width固定宽度 column-gap设置列间的间隔 break-inside:avoid防止换行 注意: Internet Explorer 9及更早 IE 版本浏览器不支持 column-count 属性. 下面是一个例子: html代码: <!DOCTYPE html> <html> &l

js实现瀑布流加载图片效果

今天学习了一个瀑布流加载效果,很多网站都有瀑布流效果,瀑布流就是很多产品显示在网页上,宽相同,高度不同,表现为多栏布局,随着页面滚动条向下滚动,这种布局还会不断加载数据块并附加至当前尾部.原理是:1.设定一行中的列数:2.取第一行中每一个div的高度并把每一个高度放进一个数组中:3.算出数组中最小高度的index值:4.把第二行的第一个div放到最小高度的div的下方并把重新算出的高度值放进数组中,重新计算最小高度的index值:5.以此类推实现多栏布局的瀑布流效果:6.如果最后一张div的高度

blocksit.js插件瀑布流

<!DOCTYPE html> <html> <head> <title>jQuery瀑布流插件BlocksIt </title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <link rel='stylesheet' href='css/style.css' media='screen' /

用CHTCollectionViewWaterfallLayout写瀑布流

实现的瀑布流效果图: 源码: WaterfallCell.h 与 WaterfallCell.m // // WaterfallCell.h // UICollectionView // // Created by YouXianMing on 14-9-17. // Copyright (c) 2014年 YouXianMing. All rights reserved. // #import <UIKit/UIKit.h> @interface WaterfallCell : UIColl