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中关于bind()方法的使用技巧分享
Mar 30 jQuery
jQuery Tree Multiselect使用详解
May 02 jQuery
jQuery手风琴的简单制作
May 12 jQuery
jQuery实现frame之间互通的方法
Jun 26 jQuery
jQuery实现可编辑表格并生成json结果(实例代码)
Jul 19 jQuery
jquery中done和then的区别(详解)
Dec 19 jQuery
jQuery实现的点击标题文字切换字体效果示例【测试可用】
Apr 26 jQuery
使用jquery DataTable和ajax向页面显示数据列表的方法
Aug 09 jQuery
jQuery简单实现根据日期计算星期几的方法
Jan 09 jQuery
jQuery插件simplePagination的使用方法示例
Apr 28 jQuery
jquery实现有过渡效果的tab切换
Jul 17 jQuery
jQuery实现评论模块
Aug 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 如何利用phpexcel导入数据库
2013/08/24 PHP
laravel框架中间件简单使用方法示例
2020/01/25 PHP
CL vs ForZe BO5 第五场 2.13
2021/03/10 DOTA
Javascript浮点数乘积运算出现多位小数的解决方法
2014/02/17 Javascript
深入理解JavaScript系列(28):设计模式之工厂模式详解
2015/03/03 Javascript
详解Matlab中 sort 函数用法
2016/03/20 Javascript
基于javascript实现tab切换特效
2016/03/29 Javascript
jQuery实现标签页效果实战(4)
2017/02/08 Javascript
nodejs个人博客开发第五步 分配数据
2017/04/12 NodeJs
微信小程序实战之自定义抽屉菜单(7)
2017/04/18 Javascript
BootStrap表单控件之文本域textarea
2017/05/23 Javascript
jQuery EasyUI的TreeGrid查询功能实现方法
2017/08/08 jQuery
jQuery中each循环的跳出和结束实例
2017/08/16 jQuery
Vue 仿QQ左滑删除组件功能
2018/03/12 Javascript
JS实现的DOM插入节点操作示例
2018/04/04 Javascript
javascript 数组精简技巧小结
2020/02/26 Javascript
微信小程序实现搜索功能
2020/03/10 Javascript
基于react项目打包css引用路径错误解决方案
2020/10/28 Javascript
python操作excel的方法(xlsxwriter包的使用)
2018/06/11 Python
Python实现TCP探测目标服务路由轨迹的原理与方法详解
2019/09/04 Python
python统计文章中单词出现次数实例
2020/02/27 Python
Python2.x与3​​.x版本有哪些区别
2020/07/09 Python
Flask中sqlalchemy模块的实例用法
2020/08/02 Python
浅析CSS3 用text-overflow解决文字排版问题
2020/10/28 HTML / CSS
美国波道夫·古德曼百货官网:Bergdorf Goodman
2017/11/07 全球购物
在线吉他课程,学习如何弹吉他:Fender Play
2019/02/28 全球购物
苏格兰在线威士忌商店:The Whisky Barrel
2019/05/07 全球购物
大学生毕业自我鉴定
2013/11/06 职场文书
先进德育工作者事迹材料
2014/01/24 职场文书
企业办公室主任岗位职责
2014/02/19 职场文书
函授毕业生自我鉴定范文
2014/03/25 职场文书
信用社主任竞聘演讲稿
2014/05/23 职场文书
保护水资源的标语
2014/06/17 职场文书
测量员岗位职责
2015/02/14 职场文书
导游词之南昌滕王阁
2019/11/29 职场文书
详解Python 3.10 中的新功能和变化
2021/04/28 Python