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插件FusionCharts绘制的3D环饼图效果示例【附demo源码】
Apr 02 jQuery
jQuery EasyUI tree增加搜索功能的实现方法
Apr 27 jQuery
jQuery设置图片等比例缩小的方法
Apr 29 jQuery
jQuery实现表格冻结顶栏效果
Aug 20 jQuery
jQuery实现切换隐藏与显示同时切换图标功能
Oct 29 jQuery
JQuery选中select组件被选中的值方法
Mar 08 jQuery
jQuery轮播图实例详解
Aug 15 jQuery
解决jquery有正确返回值但不执行success函数的问题
Aug 20 jQuery
jquery+ajax实现上传图片并显示上传进度功能【附php后台接收】
Jun 06 jQuery
使用JQuery自动完成插件Auto Complete详解
Jun 18 jQuery
详解webpack引用jquery(第三方模块)的三种办法
Aug 21 jQuery
jQuery实现鼠标拖动图片功能
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
自己动手,丰衣足食 - 短波框形天线制作
2021/03/01 无线电
PHP新手上路(十四)
2006/10/09 PHP
CakePHP去除默认显示的标题及图标的方法
2008/10/22 PHP
jquery如何实现锚点链接之间的平滑滚动
2013/12/02 Javascript
JS判断浏览器是否支持某一个CSS3属性的方法
2014/10/17 Javascript
javascript中callee与caller的区别分析
2015/04/20 Javascript
javascript中闭包(Closure)详解
2016/01/06 Javascript
基于BootStarp的Dailog
2016/04/28 Javascript
jQuery中$.ajax()方法参数解析
2016/10/22 Javascript
创建一般js对象的几种方式
2017/01/19 Javascript
jQuery实现的分页功能示例
2017/01/22 Javascript
JS中获取 DOM 元素的绝对位置实例详解
2018/04/23 Javascript
JS关于刷新页面的相关总结
2018/05/09 Javascript
JS+canvas画布实现炫酷的旋转星空效果示例
2019/02/13 Javascript
详解wepy开发小程序踩过的坑(小结)
2019/05/22 Javascript
Vue实现点击显示不同图片的效果
2019/08/10 Javascript
零基础学Python(一)Python环境安装
2014/08/20 Python
浅谈对yield的初步理解
2017/05/29 Python
Python实现文件内容批量追加的方法示例
2017/08/29 Python
python能做什么 python的含义
2019/10/12 Python
django框架auth模块用法实例详解
2019/12/10 Python
Tensorflow 卷积的梯度反向传播过程
2020/02/10 Python
html5 css3 动态气泡按钮实例演示
2012/12/02 HTML / CSS
英国最红的高街时尚品牌:Topshop
2016/08/05 全球购物
Forever 21美国官网:美国标志性快时尚品牌
2017/02/20 全球购物
澳大利亚婴儿喂养品牌:Cherub Baby
2018/11/01 全球购物
意大利咖啡、浓缩咖啡和浓缩咖啡机:illy caffe
2019/03/20 全球购物
写演讲稿所需要注意的4个条件
2014/01/09 职场文书
实习鉴定评语
2014/01/19 职场文书
酒店采购员岗位职责
2014/03/14 职场文书
社区禁毒工作方案
2014/06/02 职场文书
禁毒宣传活动总结
2014/08/26 职场文书
绿色校园广播稿
2014/10/13 职场文书
故宫的导游词
2015/01/31 职场文书
Navicat for MySQL的使用教程详解
2021/05/27 MySQL
CSS实现隐藏搜索框功能(动画正反向序列)
2021/07/21 HTML / CSS