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扩展_动力节点Java学院整理
Jul 05 jQuery
jQuery使用ajax_动力节点Java学院整理
Jul 05 jQuery
使用jQuery实现购物车结算功能
Aug 15 jQuery
jQuery完成表单验证的实例代码(纯代码)
Sep 30 jQuery
Vue中正确使用jQuery的方法
Oct 30 jQuery
jQuery实现手机号正则验证输入及自动填充空格功能
Jan 02 jQuery
jQuery选择器选中最后一个元素,倒数第二个元素操作示例
Dec 10 jQuery
详解如何使用webpack打包多页jquery项目
Feb 01 jQuery
JQuery事件委托原理与用法实例分析
May 13 jQuery
jquery+css实现Tab栏切换的代码实例
May 14 jQuery
jQuery pager.js 插件动态分页功能实例分析
Aug 02 jQuery
jQuery AJAX应用实例总结
May 19 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 出现乱码和Sessions验证问题的解决方法!
2008/12/06 PHP
PHP Error与Logging函数的深入理解
2013/06/03 PHP
php加密算法之实现可逆加密算法和解密分享
2014/01/21 PHP
destoon利用Rewrite规则设置网站安全
2014/06/21 PHP
php_imagick实现图片剪切、旋转、锐化、减色或增加特效的方法
2014/12/15 PHP
Yii视图CGridView列表用法实例分析
2016/07/12 PHP
php表单文件iframe异步上传实例讲解
2017/07/26 PHP
搜索附近的人PHP实现代码
2018/02/11 PHP
PHP getID3类的使用方法学习笔记【附getID3源码下载】
2019/10/18 PHP
jQuery EasyUI中对表格进行编辑的实现代码
2010/06/10 Javascript
IE和Firefox的Javascript兼容性总结[推荐收藏]
2011/10/19 Javascript
jquery 追加tr和删除tr示例代码
2013/09/12 Javascript
一个CSS+jQuery实现的放大缩小动画效果
2014/02/19 Javascript
javascript数组操作总结和属性、方法介绍
2014/04/05 Javascript
在javascript中随机数 math random如何生成指定范围数值的随机数
2015/10/21 Javascript
javascript产生随机数方法汇总
2016/01/25 Javascript
JS中使用变量保存arguments对象的方法
2016/06/03 Javascript
js精准的倒计时函数分享
2016/06/29 Javascript
BootStrap Fileinput的使用教程
2016/12/30 Javascript
基于 Bootstrap Datetimepicker 联动
2017/08/03 Javascript
在react项目中使用antd的form组件,动态设置input框的值
2020/10/24 Javascript
python递归函数绘制分形树的方法
2018/06/22 Python
对Pycharm创建py文件时自定义头部模板的方法详解
2019/02/12 Python
Python解析命令行读取参数之argparse模块
2019/07/26 Python
Django中使用CORS实现跨域请求过程解析
2019/08/05 Python
Python Gluon参数和模块命名操作教程
2019/12/18 Python
pytorch 模型的train模式与eval模式实例
2020/02/20 Python
Django-Scrapy生成后端json接口的方法示例
2020/10/06 Python
Canvas实现保存图片到本地的示例代码
2018/06/28 HTML / CSS
Kingsoft金山公司C/C++笔试题
2016/05/10 面试题
初一新生军训方案
2014/05/22 职场文书
2014年职称评定工作总结
2014/11/26 职场文书
趣味运动会加油词
2015/07/18 职场文书
《黄道婆》教学反思
2016/02/22 职场文书
《倍数和因数》教学反思
2016/02/23 职场文书
SpringCloud Function SpEL注入漏洞分析及环境搭建
2022/04/08 Java/Android