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 ui sortable拖拽后保存位置
Apr 27 jQuery
jQuery+Ajax实现用户名重名实时检测
Jun 01 jQuery
jquery中ajax请求后台数据成功后既不执行success也不执行error的完美解决方法
Dec 24 jQuery
详解jQuery中的isPlainObject()使用方法
Feb 27 jQuery
jQuery+datatables插件实现ajax加载数据与增删改查功能示例
Apr 17 jQuery
jQuery实现导航样式布局操作示例【可自定义样式布局】
Jul 24 jQuery
jQuery实现的网站banner图片无缝轮播效果完整实例
Jan 28 jQuery
jquery弹窗时禁止body滚动条滚动的例子
Sep 21 jQuery
如何解决jQuery 和其他JS库的冲突
Jun 22 jQuery
jquery实现上传图片功能
Jun 29 jQuery
jQuery实现简单三级联动效果
Sep 05 jQuery
ajax jquery实现页面某一个div的刷新效果
Mar 04 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引用
2015/02/22 PHP
jquery 框架使用教程 AJAX篇
2009/10/11 Javascript
jquery多选项卡效果实例代码(附效果图)
2013/03/23 Javascript
JavaScript的21条基本知识点
2014/03/04 Javascript
理解jQuery stop()方法
2014/11/21 Javascript
node.js中的fs.chmodSync方法使用说明
2014/12/18 Javascript
jQuery.prop() 使用详解
2015/07/19 Javascript
js获取url传值的方法
2015/12/18 Javascript
jQuery EasyUI 获取tabs的实例解析
2016/12/06 Javascript
vue router自动判断左右翻页转场动画效果
2017/10/10 Javascript
Vue 父子组件的数据传递、修改和更新方法
2018/03/01 Javascript
Node.js 使用request模块下载文件的实例
2018/09/05 Javascript
微信小程序实现预览图片功能
2020/10/22 Javascript
使用vue-router切换页面时,获取上一页url以及当前页面url的方法
2019/05/06 Javascript
vue获取验证码倒计时组件
2019/08/26 Javascript
Python装饰器基础详解
2016/03/09 Python
python通过ffmgep从视频中抽帧的方法
2018/12/05 Python
利用Python复制文件的9种方法总结
2019/09/02 Python
Python实现元素等待代码实例
2019/11/11 Python
解决Python二维数组赋值问题
2019/11/28 Python
OpenCV灰度化之后图片为绿色的解决
2020/12/01 Python
CSS3 @keyframes简单动画实现
2018/02/24 HTML / CSS
eBay瑞士购物网站:eBay.ch
2018/12/24 全球购物
在c#中using和new这两个关键字有什么意义
2013/05/19 面试题
项目建议书格式
2014/03/12 职场文书
学校爱心捐款倡议书
2014/05/13 职场文书
新学期标语
2014/06/30 职场文书
竞选班干部演讲稿100字
2014/08/20 职场文书
反对形式主义、官僚主义、享乐主义和奢靡之风整改措施
2014/09/17 职场文书
公安交警中队队长个人对照检查材料思想汇报
2014/10/05 职场文书
计划生育证明格式及范本
2014/10/09 职场文书
2016年读书月活动总结范文
2016/04/06 职场文书
go mod 安装依赖 unkown revision问题的解决方案
2021/05/06 Golang
对讲机知识
2022/04/07 无线电
TypeScript 使用 Tuple Union 声明函数重载
2022/04/07 Javascript
html网页引入svg图片的4种方式
2022/08/05 HTML / CSS