jQuery实现动态加载瀑布流


Posted in jQuery onSeptember 01, 2020

jquery实现瀑布流,供大家参考,具体内容如下

案例分析

  • 首先,它的每个图片是等宽的
  • 其次,除第一排正常显示其余的图片都会显示在上一排中高度最小的那个图片的下面
  • 最后,就是根据最矮图片所在位置的宽高来,决定绝对定位设置图片显示的位置

效果图

jQuery实现动态加载瀑布流

实现步骤

html结构

<div class="container">
 <div class="box">
 <div class="content"><img src="./image/1.jpg" alt=""></div>
 </div>
 <div class="box">
 <div class="content"><img src="./image/2.jpg" alt=""></div>
 </div>
 <div class="box">
 <div class="content"><img src="./image/3.jpg" alt=""></div>
 </div>

 </div>
</div>

css样式

具体就是对每个boxdiv浮动并设置样式

* {
 padding: 0;
 margin: 0;
 }

 .box {
 position: relative;
 float: left;
 margin: 10px;
 }

 .content {
 padding: 15px;
 border: 1px solid #ccc;
 box-shadow: 0 0 5px #ccc;
 border-radius: 10px;
 }

 .content img {
 width: 200px;
 height: auto;
 }

js(jquery)代码

主要是根据一排中高度最小的宽度个高度进行绝对定位的设置

<script>
 $(function () {
 //jQuery代码
 imgLocation()
 
 function imgLocation() {
 var box = $('.box')
 var num = Math.floor($(window).width() / box.eq(0).width())
 var boxHeights = []
 box.each(function (index, value) {
 var boxHeight = box.eq(index).height()
 if (index < num) {
 boxHeights[index] = boxHeight
 } else {
 var minHeight = Math.min.apply(null, boxHeights)
 var minIndex = $.inArray(minHeight, boxHeights)
 $(value).css({
 'position': 'absolute',
 'top': minHeight,
 'left': box.eq(minIndex).position().left
 });
 boxHeights[minIndex] += box.eq(index).height()
 }
 })
 }
 })
</script>

根据鼠标的滚动动态的加载图片

案例分析

这里的动态是主要是模仿动态加载数据(伪动态)

  • 首先,根据鼠标滚动的大小和界面的高度判断是否要动态加载
  • 其次,就是访问数据,并动态形成jquery数据类型
  • 最后,把生成的数据追加的.container中进行显示

效果图

jQuery实现动态加载瀑布流

实现步骤

  • htmlcss的代码都一样这里就不重复写了
  • js代码

主要是判断什么时候新增图片数据,新增后插入到模板就行了

其中的dataImg就是模仿的假数据

var dataImg = { 'data': [{ 'src': '1.jpg' }, { 'src': '2.jpg' }, { 'src': '3.jpg' }, { 'src': '4.jpg' }] }
 window.onscroll = function () {
 if (scrollside()) {
 $.each(dataImg.data, function (index, value) {
 var html = `<div class="box">
 <div class="content"><img src="./image/${value.src}" alt=""></div>
 </div>`
 $(html).appendTo($('.container'))
 })
 imgLocation()
 }
 }
 function scrollside() {
 var box = $('.box')
 var lastboxHeight = box.last().get(0).offsetTop
 var documentHeight = document.body.scrollHeight + 130
 var scrollHeight = $(document).scrollTop()
 console.log(lastboxHeight, scrollHeight, documentHeight)
 return (lastboxHeight < scrollHeight + documentHeight) ? true : false
 }


oxHeight, scrollHeight, documentHeight)
 return (lastboxHeight < scrollHeight + documentHeight) ? true : false
 }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

jQuery 相关文章推荐
jQuery使用正则验证15/18身份证的方法示例
Apr 27 jQuery
jQuery选择器_动力节点Java学院整理
Jul 05 jQuery
jQuery Layer弹出层传值到父页面的实现代码
Aug 17 jQuery
jQuery实现动态显示select下拉列表数据的方法
Feb 05 jQuery
通过jquery toggleClass()属性制作文章段落更改背景颜色
May 21 jQuery
jquery分页插件pagination使用教程
Oct 23 jQuery
jquery.pagination.js分页使用教程
Oct 23 jQuery
在Vue项目中引入JQuery-ui插件的讲解
Jan 27 jQuery
jQuery添加新内容的四个常用方法分析【append,prepend,after,before】
Mar 19 jQuery
浅谈JS和jQuery的区别
Mar 27 jQuery
jquery+php后台实现省市区联动功能示例
May 23 jQuery
jquery轻量级数字动画插件countUp.js使用详解
Oct 17 jQuery
js和jquery判断数据类型的4种方法总结
Aug 28 #jQuery
jQuery编写QQ简易聊天框
Aug 27 #jQuery
jQuery实现简单QQ聊天框
Aug 27 #jQuery
基于jquery实现彩色投票进度条代码解析
Aug 26 #jQuery
Jquery 获取相同NAME 或者id删除行操作
Aug 24 #jQuery
jQuery实现评论模块
Aug 19 #jQuery
jQuery实现简单评论功能
Aug 19 #jQuery
You might like
PHP 输出缓存详解
2009/06/20 PHP
关于PHPDocument 代码注释规范的总结
2013/06/25 PHP
php遍历替换目录下文件指定内容的方法
2016/11/10 PHP
thinkphp Apache配置重启Apache1 restart 出错解决办法
2017/02/15 PHP
jQuery登陆判断简单实现代码
2013/04/21 Javascript
$.get获取一个文件的内容示例代码
2013/09/11 Javascript
node.js应用后台守护进程管理器Forever安装和使用实例
2014/06/01 Javascript
jquery实现下拉框功能效果【实例代码】
2016/05/06 Javascript
详解Javascript中prototype属性(推荐)
2016/09/03 Javascript
Highcharts+NodeJS搭建数据可视化平台示例
2017/01/01 NodeJs
Vue.js 2.0窥探之Virtual DOM到底是什么?
2017/02/10 Javascript
浅谈vue自定义全局组件并通过全局方法 Vue.use() 使用该组件
2017/12/07 Javascript
vue axios请求拦截实例代码
2018/03/29 Javascript
通过JS运行机制的角度说说作用域
2019/03/12 Javascript
D3.js(v3)+react 实现带坐标与比例尺的柱形图 (V3版本)
2019/05/09 Javascript
微信小程序判断页面是否从其他页面返回的实例代码
2019/07/03 Javascript
js实现点击生成随机div
2020/01/16 Javascript
python里对list中的整数求平均并排序
2014/09/12 Python
解决Django模板无法使用perms变量问题的方法
2017/09/10 Python
django rest framework之请求与响应(详解)
2017/11/06 Python
pytorch 调整某一维度数据顺序的方法
2018/12/08 Python
pandas去除重复列的实现方法
2019/01/29 Python
在pyqt5中QLineEdit里面的内容回车发送的实例
2019/06/21 Python
python文件转为exe文件的方法及用法详解
2019/07/08 Python
Numpy 中的矩阵求逆实例
2019/08/26 Python
Django 构建模板form表单的两种方法
2020/06/14 Python
canvas绘制树形结构可视图形的实现
2020/04/03 HTML / CSS
软件测试工程师面试问题精选
2016/10/28 面试题
PyQt 如何创建自定义QWidget
2021/03/24 Python
大学生求职简历的自我评价范文
2013/10/12 职场文书
怎么样写好简历中的自我评价
2013/10/25 职场文书
民生工程实施方案
2014/03/22 职场文书
《望庐山瀑布》教学反思
2014/04/22 职场文书
疾病捐款倡议书
2014/05/13 职场文书
解除劳动合同协议书范本
2014/09/13 职场文书
党的群众路线教育实践活动制度建设计划方案
2014/10/31 职场文书