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实现radio第一次点击选中第二次点击取消功能
May 15 jQuery
jQuery 循环遍历改变a标签的href(实例讲解)
Jul 12 jQuery
jQuery菜单实例(全选,反选,取消)
Aug 28 jQuery
jQuery实现的鼠标滚轮控制图片缩放功能实例
Oct 14 jQuery
jQuery zTree搜索-关键字查询 递归无限层功能实现代码
Jan 25 jQuery
jQuery实现文字超过1行、2行或规定的行数时自动加省略号的方法
Mar 28 jQuery
jQuery 实现批量提交表格多行数据的方法
Aug 09 jQuery
深入浅析angular和vue还有jquery的区别
Aug 13 jQuery
Jquery遍历筛选数组的几种方法和遍历解析json对象,Map()方法详解以及数组中查询某值是否存在
Jan 18 jQuery
jQuery子选择器与可见性选择器实例分析
Jun 28 jQuery
JQuery事件委托(适用于给动态生成的脚本元素添加事件)
Feb 01 jQuery
jQuery实现动态加载瀑布流
Sep 01 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
使用sockets:从新闻组中获取文章(一)
2006/10/09 PHP
PHP的面试题集
2006/11/19 PHP
Drupal7连接多个数据库及常见问题解决
2014/03/02 PHP
JavaScript 轻松搞定快捷留言功能 只需一行代码
2010/04/01 Javascript
js实现数字每三位加逗号的方法
2015/02/05 Javascript
jQuery实现边框动态效果的实例代码
2016/09/23 Javascript
浅谈JS中String()与 .toString()的区别
2016/10/20 Javascript
Javascript数组中push方法用法分析
2016/10/31 Javascript
Javascript基于jQuery UI实现选中区域拖拽效果
2016/11/25 Javascript
Vue.js系列之项目搭建(1)
2017/01/03 Javascript
jQuery zTree树插件动态加载实例代码
2017/05/11 jQuery
Node调用Java的示例代码
2017/09/20 Javascript
微信小程序实现弹出菜单功能
2018/06/12 Javascript
vue的for循环使用方法
2019/02/12 Javascript
node中IO以及定时器优先级详解
2019/05/10 Javascript
简单了解Javscript中兄弟ifream的方法调用
2019/06/17 Javascript
Vue-resource安装过程及使用方法解析
2020/07/21 Javascript
python获取酷狗音乐top500的下载地址 MP3格式
2018/04/17 Python
python 实现倒排索引的方法
2018/12/25 Python
Python sqlite3查询操作过程解析
2020/02/20 Python
Django认证系统user对象实现过程解析
2020/03/02 Python
使用python客户端访问impala的操作方式
2020/03/28 Python
用python打开摄像头并把图像传回qq邮箱(Pyinstaller打包)
2020/05/17 Python
python用分数表示矩阵的方法实例
2021/01/11 Python
HTML5如何使用SVG的方法示例
2019/01/11 HTML / CSS
Hotter Shoes英国官网:英伦风格,舒适的鞋子
2017/12/28 全球购物
企业治理工作自我评价
2013/09/26 职场文书
大学生活学习的自我评价
2013/12/03 职场文书
《诚实与信任》教学反思
2014/04/10 职场文书
森林防火宣传标语
2014/06/27 职场文书
土木工程专业本科生求职信
2014/10/01 职场文书
财务稽核岗位职责
2015/04/13 职场文书
孙振耀退休感言
2015/08/01 职场文书
历史名人教你十五个读书方法,赶快Get起来!
2019/07/18 职场文书
python函数指定默认值的实例讲解
2021/03/29 Python
Python编写冷笑话生成器
2022/04/20 Python