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绘制ScrollColumn2D图效果示例【附demo源码下载】
Mar 22 jQuery
jQuery用noConflict代替$的实现方法
Apr 12 jQuery
jQuery.form.js的使用详解
Jun 14 jQuery
jQuery实现的form转json经典示例
Oct 10 jQuery
jQuery实现的事件绑定功能基本示例
Oct 11 jQuery
jQuery创建及操作xml格式数据示例
May 26 jQuery
jQuery解析json格式数据示例
Sep 01 jQuery
jquery 动态遍历select 赋值的实例
Sep 12 jQuery
jQuery实现的简单歌词滚动功能示例
Jan 07 jQuery
jQuery实现的中英文切换功能示例
Jan 11 jQuery
jQuery实现动态添加和删除input框实例代码
Mar 26 jQuery
jQuery实现简单弹幕制作
Dec 10 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下载远程文件类(支持断点续传)
2008/11/14 PHP
PHP 登录记住密码实现思路
2013/05/07 PHP
Yii 快速,安全,专业的PHP框架
2014/09/03 PHP
PHP中foreach()用法汇总
2015/07/02 PHP
JavaScript模拟深蓝vs卡斯帕罗夫的国际象棋对局示例
2015/04/22 Javascript
javascript巧用eval函数组装表单输入项为json对象的方法
2015/11/25 Javascript
第十篇BootStrap轮播插件使用详解
2016/06/21 Javascript
分分钟玩转Vue.js组件
2016/10/25 Javascript
ES6新特性之变量和字符串用法示例
2017/04/01 Javascript
详解基于Vue cli生成的Vue项目的webpack4升级
2018/06/19 Javascript
jquery图片预览插件实现方法详解
2019/07/18 jQuery
JS常见面试试题总结【去重、遍历、闭包、继承等】
2019/08/27 Javascript
jQuery - AJAX load() 实例用法详解
2019/08/27 jQuery
JS删除数组指定值常用方法详解
2020/06/04 Javascript
在Python中使用列表生成式的教程
2015/04/27 Python
Python类的动态修改的实例方法
2017/03/24 Python
python多进程实现进程间通信实例
2017/11/24 Python
Python 占位符的使用方法详解
2019/07/10 Python
Windows下pycharm创建Django 项目(虚拟环境)过程解析
2019/09/16 Python
Python实现二叉树的最小深度的两种方法
2019/09/30 Python
python 基于dlib库的人脸检测的实现
2019/11/08 Python
用python解压分析jar包实例
2020/01/16 Python
Python子进程subpocess原理及用法解析
2020/07/16 Python
基于html5 canvas实现漫天飞雪效果实例
2014/09/10 HTML / CSS
HTML5 Canvas 旋转风车绘制
2017/08/18 HTML / CSS
Html5在手机端调用相机的方法实现
2020/05/13 HTML / CSS
互动出版网:专业书籍
2017/03/21 全球购物
美国新兴城市生活方式零售商:VILLA
2017/12/06 全球购物
自我评价怎么写好呢?
2013/12/05 职场文书
2014三八妇女节活动总结
2014/03/01 职场文书
庆元旦文艺演出主持词
2014/03/27 职场文书
竞选宣传委员演讲稿
2014/05/24 职场文书
2015年政风行风工作总结
2015/04/21 职场文书
发工资啦!教你用Python实现邮箱自动群发工资条
2021/05/10 Python
JavaScript ES6的函数拓展
2022/01/18 Javascript
MySQL创建管理HASH分区
2022/04/13 MySQL