一行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 相关文章推荐
javascript中的对象和数组的应用技巧
Jan 07 Javascript
javascript 常用方法总结
Jun 03 Javascript
jquery选择器(常用选择器说明)
Sep 28 Javascript
juqery 学习之五 文档处理 插入
Feb 11 Javascript
iphone safari不支持position fixed的解决方法
May 04 Javascript
JavaScript中一个奇葩的IE浏览器判断方法
Apr 16 Javascript
浅析BootStrap中Modal(模态框)使用心得
Dec 24 Javascript
微信小程序实现流程进度的图样式功能
Jan 16 Javascript
JS实现遍历不规则多维数组的方法
Mar 21 Javascript
Vue+mui实现图片的本地缓存示例代码
May 24 Javascript
vue实现form表单与table表格的数据关联功能示例
Jan 29 Javascript
Layui数据表格之单元格编辑方式
Oct 26 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
玩转图像函数库―常见图形操作
2006/09/03 PHP
无数据库的详细域名查询程序PHP版(1)
2006/10/09 PHP
php变量范围介绍
2012/10/15 PHP
php的socket编程详解
2016/11/20 PHP
PHP Socket网络操作类定义与用法示例
2017/08/30 PHP
csdn 批量接受好友邀请
2009/02/19 Javascript
Javascript 中介者模式实例
2009/12/16 Javascript
JavaScript DOM学习第六章 表单实例
2010/02/19 Javascript
JS下高效拼装字符串的几种方法比较与测试代码
2010/04/15 Javascript
js里的prototype使用示例
2010/11/19 Javascript
JavaScript使用cookie实现记住账号密码功能
2015/04/27 Javascript
JavaScript事件类型中UI事件详解
2016/01/14 Javascript
浅析javascript异步执行函数导致的变量变化问题解决思路
2016/05/13 Javascript
详解jQuery插件开发方式
2016/11/22 Javascript
jQuery插件FusionCharts实现的2D面积图效果示例【附demo源码下载】
2017/03/06 Javascript
详解Vue路由开启keep-alive时的注意点
2017/06/20 Javascript
使用InstantClick.js让页面提前加载200ms
2017/09/12 Javascript
JS严格模式知识点总结
2018/02/27 Javascript
详解angular路由高亮之RouterLinkActive
2018/04/28 Javascript
快速解决vue在ios端下点击响应延时的问题
2018/08/27 Javascript
vue v-on:click传递动态参数的步骤
2020/09/11 Javascript
Python及PyCharm下载与安装教程
2017/11/18 Python
浅谈python之自动化运维(Paramiko)
2020/01/31 Python
python requests包的request()函数中的参数-params和data的区别介绍
2020/05/05 Python
如何使用python的ctypes调用医保中心的dll动态库下载医保中心的账单
2020/05/24 Python
Python实现网络聊天室的示例代码(支持多人聊天与私聊)
2021/01/27 Python
Veronica Beard官网:在酷、经典和别致之间找到了平衡
2018/01/11 全球购物
美国背景检查、公共记录和人物搜索网站:BeenVerified
2018/02/25 全球购物
英国版MAC彩妆品牌:Illamasqua
2018/04/18 全球购物
大学生职业生涯规划书的基本内容
2014/01/06 职场文书
管理部副部长岗位职责范文
2014/03/09 职场文书
升学宴主持词
2014/04/02 职场文书
《动手做做看》教学反思
2014/04/09 职场文书
人事任命书格式
2014/06/05 职场文书
北京导游词
2015/02/12 职场文书
详细聊聊浏览器是如何看闭包的
2021/11/11 Javascript