一行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 SocialHistory 检查访问者是否访问过某站点
Aug 02 Javascript
jquery插件冲突(jquery.noconflict)解决方法分享
Mar 20 Javascript
jQuery实现简单的日期输入格式化控件
Mar 12 Javascript
四种参数传递的形式——URL,超链接,js,form表单
Jul 24 Javascript
jQuery+PHP星级评分实现方法
Oct 02 Javascript
详解原生JavaScript实现jQuery中AJAX处理的方法
May 10 Javascript
javascript实现圣旨卷轴展开效果(代码分享)
Mar 23 Javascript
微信小程序开发问题之wx.previewImage
Dec 25 Javascript
Vue+Express实现登录状态权限验证的示例代码
May 05 Javascript
layer实现弹出层自动调节位置
Sep 05 Javascript
原生js+ajax分页组件
Jan 30 Javascript
如何在JavaScript中创建具有多个空格的字符串?
Feb 23 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
出现“不能执行已释放的Script代码”错误的原因及解决办法
2007/08/29 Javascript
js 替换
2008/02/19 Javascript
javascript 函数参数限制说明
2010/11/19 Javascript
小试JQuery的AutoComplete插件
2011/05/04 Javascript
Jquery提交表单 Form.js官方插件介绍
2012/03/01 Javascript
javascript ie6兼容position:fixed实现思路
2013/04/01 Javascript
JS 精确统计网站访问量的实例代码
2013/07/05 Javascript
Javascript aop(面向切面编程)之around(环绕)分析
2015/05/01 Javascript
jQuery实现的倒计时效果实例小结
2016/04/16 Javascript
node.js中fs.stat与fs.fstat的区别详解
2017/06/01 Javascript
JS实现图片放大镜插件详解
2017/11/06 Javascript
[原创]jquery判断元素内容是否为空的方法
2018/05/04 jQuery
Vue.use源码学习小结
2018/06/20 Javascript
小程序识别身份证,银行卡,营业执照,驾照的实现
2019/11/05 Javascript
vue 实现锚点功能操作
2020/08/10 Javascript
Python使用Beautiful Soup包编写爬虫时的一些关键点
2016/01/20 Python
利用selenium 3.7和python3添加cookie模拟登陆的实现
2017/11/20 Python
python版本的仿windows计划任务工具
2018/04/30 Python
Python WEB应用部署的实现方法
2019/01/02 Python
利用SVG和CSS3来实现一个炫酷的边框动画
2015/07/22 HTML / CSS
HTML5注册页面示例代码
2014/03/27 HTML / CSS
美国最大的高尔夫发球时间预订网站:TeeOff.com
2018/03/28 全球购物
英国健身仓库:Bodybuilding Warehouse
2019/03/06 全球购物
诺思信科技(南京)有限公司.NET笔试题答案
2013/07/06 面试题
专升本自我鉴定
2013/10/10 职场文书
火车的故事教学反思
2014/02/11 职场文书
顶碗少年教学反思
2014/02/21 职场文书
简历中个人自我评价分享
2014/03/15 职场文书
《理想的风筝》教学反思
2014/04/11 职场文书
社区个人对照检查材料(群众路线)
2014/09/26 职场文书
县政府班子个人对照检查材料
2014/10/05 职场文书
干部职工纪律作风整改措施思想汇报
2014/10/11 职场文书
2014年办公室个人工作总结
2014/11/12 职场文书
通知函格式范文
2015/04/27 职场文书
Nginx+Windows搭建域名访问环境的操作方法
2022/03/17 Servers
电脑只能进入安全模式无法正常启动的解决办法
2022/04/08 数码科技