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中封装函数传递当前元素的方法示例
May 05 jQuery
jquery实现提示语淡入效果
May 05 jQuery
jQuery模拟实现天猫购物车动画效果实例代码
May 25 jQuery
jQuery实现导航栏头部菜单项点击后变换颜色的方法
Jul 19 jQuery
jQuery实现腾讯信用界面(自制刻度尺)样式
Aug 15 jQuery
jquery实现限制textarea输入字数的方法
Sep 06 jQuery
jQuery中常用动画效果函数知识点整理
Aug 19 jQuery
jQuery选择器选中最后一个元素,倒数第二个元素操作示例
Dec 10 jQuery
jQuery实现的模仿雨滴下落动画效果
Dec 11 jQuery
jQuery.parseJSON()函数详解
Feb 28 jQuery
详解webpack引用jquery(第三方模块)的三种办法
Aug 21 jQuery
JQuery常用简单动画操作方法回顾与总结
Dec 07 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代码技巧的小结
2013/06/02 PHP
PHP数组操作――获取数组最后一个值的方法
2015/04/14 PHP
thinkphp5框架结合mysql实现微信登录和自定义分享链接与图文功能示例
2019/08/13 PHP
JS 常用校验函数
2009/03/26 Javascript
JQuery优缺点分析说明
2010/06/09 Javascript
js获取input标签的输入值实现代码
2013/08/05 Javascript
解决window.opener=null;window.close(),只支持IE6不支持IE7,IE8的问题
2014/01/14 Javascript
jQuery中hover与mouseover和mouseout的区别分析
2015/12/24 Javascript
JS+CSS实现DIV层的展开、收缩效果
2016/01/28 Javascript
JS Ajax请求如何防止重复提交
2016/06/13 Javascript
深入浅析JS Function()构造函数
2016/08/22 Javascript
js处理层级数据结构的方法小结
2017/01/17 Javascript
使用JS 插件qrcode.js生成二维码功能
2017/02/20 Javascript
vue 如何添加全局函数或全局变量以及单页面的title设置总结
2017/06/01 Javascript
nodejs中各种加密算法的实现详解
2019/07/11 NodeJs
JavaScript 预解析的4种实现方法解析
2019/09/03 Javascript
[53:38]OG vs LGD 2018国际邀请赛淘汰赛BO3 第三场 8.26
2018/08/30 DOTA
详解Django中的过滤器
2015/07/16 Python
Python线性拟合实现函数与用法示例
2018/12/13 Python
python获取交互式ssh shell的方法
2019/02/14 Python
python批量解压zip文件的方法
2019/08/20 Python
PyTorch中的padding(边缘填充)操作方式
2020/01/03 Python
Tensorflow 多线程设置方式
2020/02/06 Python
python 回溯法模板详解
2020/02/26 Python
pyqt5数据库使用详细教程(打包解决方案)
2020/03/25 Python
matplotlib.pyplot.plot()参数使用详解
2020/07/28 Python
Python self用法详解
2020/11/28 Python
python中添加模块导入路径的方法
2021/02/03 Python
台湾乐天市场:日本No.1的网路购物网站
2017/03/22 全球购物
幼儿园消防安全制度
2014/01/26 职场文书
税务干部鉴定材料
2014/02/11 职场文书
材料员岗位职责
2014/03/13 职场文书
药剂专业求职信
2014/06/20 职场文书
模具设计与制造专业求职信
2014/07/19 职场文书
整改通知书格式
2015/04/22 职场文书
赞美教师的句子
2019/09/02 职场文书