一行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 相关文章推荐
JavaScipt基本教程之JavaScript语言的基础
Jan 16 Javascript
JavaScript对象模型-执行模型
Apr 28 Javascript
jQuery 全选效果实现代码
Mar 23 Javascript
js换图片效果可进行定时操作
Jun 09 Javascript
jquery实现在页面加载的时自动为日期插件添加当前日期
Aug 20 Javascript
jQuery实现的导航条切换可显示隐藏
Oct 22 Javascript
javascript实现禁止右键和F12查看源代码
Dec 26 Javascript
纯JS实现表单验证实例
Dec 24 Javascript
Javascript操作dom对象之select全面解析
Apr 24 Javascript
详解node中创建服务进程
May 09 Javascript
JavaScript循环遍历你会用哪些之小结篇
Sep 28 Javascript
Jquery使用each函数实现遍历及数组处理
Jul 14 jQuery
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
PHP中使用substr()截取字符串出现中文乱码问题该怎么办
2015/10/21 PHP
php array_merge_recursive 数组合并
2016/10/26 PHP
PHP正则表达式匹配替换与分割功能实例浅析
2017/02/04 PHP
LNMP部署laravel以及xhprof安装使用教程
2017/09/14 PHP
Laravel如何使用Redis共享Session
2018/02/23 PHP
tp5框架无刷新分页实现方法分析
2019/09/26 PHP
php实现JWT验证的实例教程
2020/11/26 PHP
模仿jQuery each函数的链式调用
2009/07/22 Javascript
JS面向对象编程之对象使用分析
2010/08/19 Javascript
通过Javascript创建一个选择文件的对话框代码
2012/06/16 Javascript
javaScript 页面自动加载事件详解
2014/02/10 Javascript
浅谈JQ中mouseover和mouseenter的区别
2016/09/13 Javascript
基于three.js实现的3D粒子动效实例代码
2019/04/09 Javascript
vue实现axios图片上传功能
2019/08/20 Javascript
vue excel上传预览和table内容下载到excel文件中
2019/12/10 Javascript
JavaScript 严格模式(use strict)用法实例分析
2020/03/04 Javascript
Node.js API详解之 Error模块用法实例分析
2020/05/14 Javascript
基于jQuery拖拽事件的封装
2020/11/29 jQuery
Vue仿百度搜索功能
2020/12/28 Vue.js
[01:17:55]VGJ.T vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/20 DOTA
python中将字典形式的数据循环插入Excel
2018/01/16 Python
python os.path模块常用方法实例详解
2018/09/16 Python
Python 读写文件的操作代码
2018/09/20 Python
python删除列表元素的三种方法(remove,pop,del)
2019/07/22 Python
python 中Arduino串口传输数据到电脑并保存至excel表格
2019/10/14 Python
Python基于Tkinter编写crc校验工具
2020/05/06 Python
python实现测试工具(二)——简单的ui测试工具
2020/10/19 Python
解决python3输入的坑——input()
2020/12/05 Python
Shell如何接收变量输入
2012/09/24 面试题
继电保护工岗位职责
2014/01/05 职场文书
文化产业实施方案
2014/06/07 职场文书
收款授权委托书
2014/10/02 职场文书
龙潭大峡谷导游词
2015/02/10 职场文书
2016大学生毕业实习心得体会
2016/01/23 职场文书
2016保送生自荐信范文
2016/01/29 职场文书
导游词之太原天龙山
2020/01/02 职场文书