一行JavaScript代码如何实现瀑布流布局


Posted in Javascript onDecember 11, 2020

写在前面

一行 JavaScript 代码究竟可以完成什么布局?今天我们就来用一行 JavaScript 代码完成经典布局的一种,瀑布流布局。
所谓的瀑布流布局就是比较流行的一种网站页面布局,视觉表现为参差不齐的多栏布局,随着页面滚动条向下滚动,这种布局还会不断加载数据块并附加至当前尾部。

瀑布流的特点:

  • 琳琅满目: 整版以图片为主,大小不一的图片按照一定的规律排列。
  • 唯美: 图片的风格以唯美的图片为主。
  • 操作简单: 在浏览网站的时候,只需要轻轻滑动一下鼠标滚轮,一切的美妙的图片精彩便可呈现在你面前。

效果图如下所示

一行JavaScript代码如何实现瀑布流布局

当然了 这个样式使用原生 JS 一行代码肯定是不能完成的,这就需要今天的主角登场了:Masonry 插件闪亮登场!!!!!

Masonry 插件是什么

Masonry是 jQuery 实现瀑布流布局的插件,可以把 Masonry 看做是 CSS 的浮动布局。

无论排列的元素是水平浮动的还是垂直浮动的,Masonry都是根据网格先垂直排列元素,再水平排列元素,就像修墙一样。

配置 Masonry 相当简单,只需要在 jQuery 脚本中简单的使用.masonry()方法来包装容器元素。根据具体布局效果,可能需要制定一个选项。

Masonry 插件的使用方法

1、引入 masonry 插件:masonry 插件的使用是依赖于 jQuery 的,所以必须按照顺序进行引入:

<!-- 1. 引入 jQuery 文件 -->
<script src="./library/jQuery 1.12.4.js"></script>
<!-- 引入 masonry 插件 -->
<script src="./library/masonry/masonry.pkgd.js"></script>

2、HTML 页面结构

  • 定义一个容器元素
  • 在容器元素中所有元素呈现瀑布流效果

示例代码如下所示

<div id="container">
 <img class="grid-item" src="./imgs/1.png">
</div>

定位瀑布流布局的容器元素,并调用 masonry() 核心方法

masonry() 核心方法的简单应用

masonry() 核心方法的简单用法,传入一个 options 参数,该参数具有两个可选项

  • itemSelector : 默认值是 .item ,指定哪些子元素将用作布局中的项元素(选择器)
  • columnWidth : 一列的宽度,如果默认的话是第一个项目宽度

示例代码如下所示:

$('#container').masonry({
 // itemSelector : 默认值是 .item ,指定哪些子元素将用作布局中的项元素(选择器)
 itemSelector: '.grid-item'
})

测试 dome

示例代码如下

<!DOCTYPE html>
<html lang="en">

<head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
 <title>瀑布流布局插件</title>
 <!-- 1. 引入 jQuery 文件 -->
 <script src="./library/jQuery 1.12.4.js"></script>
 <!-- 引入 masonry 插件 -->
 <script src="./library/masonry/masonry.pkgd.js"></script>
 <style>
  img {
   display: block;
   width: 300px;
   margin: 5px;
   float: left;
  }

  #container {
   width: 940px;
   margin: 0 auto;
  }
 </style>
</head>

<body>
<div id="container">
 <img class="grid-item" src="./imgs/1.png">
 <img class="grid-item" src="./imgs/2.png">
 <!--此处省略若干行图片-->
 <img class="grid-item" src="./imgs/9.png">
 <img class="grid-item" src="./imgs/10.png">
</div>
 <script>
  $('#container').masonry({
   // itemSelector : 默认值是 .item ,指定哪些子元素将用作布局中的项元素(选择器)
   itemSelector: '.grid-item'
  })
 </script>
</body>

</html>

最终执行的结果如上图。

哈哈哈 最终还是一行 JS 代码

$('#container').masonry({itemSelector: '.grid-item'})

到此这篇关于JavaScript代码如何实现瀑布流布局的文章就介绍到这了,更多相关JS实现瀑布流布局内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
JS去除字符串的空格增强版(可以去除中间的空格)
Aug 26 Javascript
javascript学习(一)构建自己的JS库
Jan 02 Javascript
js检测网络是否具体连接功能的代码
May 23 Javascript
jQuery插件Slider Revolution实现响应动画滑动图片切换效果
Jun 05 Javascript
JavaScript获取当前运行脚本文件所在目录的方法
Feb 03 Javascript
深入理解node.js之path模块
May 03 Javascript
JS中Safari浏览器中的Date
Jul 17 Javascript
微信小程序中post方法与get方法的封装
Sep 26 Javascript
jquery ajaxfileupload异步上传插件
Nov 21 jQuery
javascript高仿热血传奇游戏实现代码
Feb 22 Javascript
简单明了区分escape、encodeURI和encodeURIComponent
May 26 Javascript
JavaScript如何使用插值实现图像渐变
Jun 28 Javascript
react中hook介绍以及使用教程
Dec 11 #Javascript
js实现菜单跳转效果
Dec 11 #Javascript
jquery实现拖拽小方块效果
Dec 10 #jQuery
js实现弹幕墙效果
Dec 10 #Javascript
jQuery实现简单弹幕制作
Dec 10 #jQuery
Vue 实现一个简单的鼠标拖拽滚动效果插件
Dec 10 #Vue.js
uniapp开发小程序实现滑动页面控制元素的显示和隐藏效果
Dec 10 #Javascript
You might like
模板引擎Smarty深入浅出介绍
2006/12/06 PHP
jQuery ajax+PHP实现的级联下拉列表框功能示例
2019/02/12 PHP
一个JS翻页效果
2007/07/23 Javascript
JS Date函数整理方便使用
2013/10/23 Javascript
jquery动态增加删除表格行的小例子
2013/11/14 Javascript
js调用打印机打印网页字体总是缩小一号的解决方法
2014/01/24 Javascript
原生js仿jq判断当前浏览器是否为ie,精确到ie6~8
2014/08/30 Javascript
jquery+ajax验证不通过也提交表单问题处理
2014/12/12 Javascript
jQuery实现鼠标滑过点击事件音效试听
2015/08/31 Javascript
jquery判断checkbox是否选中及改变checkbox状态的实现方法
2016/05/26 Javascript
socket.io学习教程之深入学习篇(三)
2017/04/29 Javascript
详解Vue学习笔记进阶篇之列表过渡及其他
2017/07/17 Javascript
js canvas实现5张图片合成一张图片
2019/07/15 Javascript
element-ui 文件上传修改文件名的方法示例
2019/11/05 Javascript
解决js中的setInterval清空定时器不管用问题
2020/11/17 Javascript
[26:21]浴火之凤-TI4世界冠军Newbee战队纪录片
2014/08/07 DOTA
Python迭代器和生成器介绍
2015/03/06 Python
python连接远程ftp服务器并列出目录下文件的方法
2015/04/01 Python
python实现对一个完整url进行分割的方法
2015/04/29 Python
Python 私有函数的实例详解
2017/09/11 Python
Python实现字典(dict)的迭代操作示例
2018/06/05 Python
python判断计算机是否有网络连接的实例
2018/12/15 Python
Python安装Flask环境及简单应用示例
2019/05/03 Python
使用python代码进行身份证号校验的实现示例
2019/11/21 Python
Python3中对json格式数据的分析处理
2021/01/28 Python
HTML5 文件上传下载的实例代码
2017/07/03 HTML / CSS
Manuka Doctor英国官网:真正的麦卢卡蜂蜜和护肤品
2018/10/26 全球购物
Timberland法国官网:购买靴子、鞋子、衣服、夹克和配饰
2019/11/30 全球购物
Myprotein西班牙官网:欧洲第一大运动营养品牌
2020/02/24 全球购物
外贸销售员求职的自我评价
2013/11/23 职场文书
十岁生日家长答谢词
2014/01/17 职场文书
触摸春天教学反思
2014/02/03 职场文书
地理教师岗位职责
2014/03/16 职场文书
个人授权委托书
2014/04/03 职场文书
2014年四风个人对照检查及整改措施
2014/10/28 职场文书
Python何绘制带有背景色块的折线图
2022/04/23 Python