基于jquery实现瀑布流布局


Posted in Javascript onJune 28, 2020

本文实例为大家介绍了基于jquery实现瀑布流布局的关键代码,分享给大家供大家参考,具体内容如下

效果图:

基于jquery实现瀑布流布局

具体代码:

使用jquery-1.8.3.min.js,waterfall.js代码如下:

$( window ).load( function(e){
 waterfall();
 var dataInt = { 'data': [{ 'src': '1.jpg' },{ 'src': '2.jpg' },{ 'src': '3.jpg' },{ 'src': '4.jpg' }]};
 $(window).scroll(function(){
  if( checkscrollside() ){
   $.each( dataInt.data, function(index,value){
    var $oPin = $('<div>').addClass('pin').appendTo( $("#main") );
    var $oBox = $('<div>').addClass('box').appendTo( $oPin );
    $('<img>').attr('src','./images/' + $(value).attr('src')).appendTo( $oBox );
   });
   waterfall();
  }
 });
 function waterfall(){
  var $aPin = $( "#main>div" );
  var iPinW = $aPin.eq(0).outerWidth();
  var num = Math.floor( $(window).width() / iPinW );
  $( "#main" ).css({
   'width' : iPinW * num,
   'margin' : '0 auto'
  });

  var pinHArr = [];
  $aPin.each(function( index, value ){
   var pinH = $aPin.eq( index ).height();
   if( index < num ){
    pinHArr[ index ] = pinH;
   }else{
    var minH = Math.min.apply( null, pinHArr );
    var minHIndex = $.inArray( minH, pinHArr );
    $( value ).css({
     'position': 'absolute',
     'top': minH + 15,
     'left': $aPin.eq( minHIndex ).position().left
    });
    pinHArr[ minHIndex ] += $aPin.eq( index ).height() + 15;
   }
  });
 }
 function checkscrollside(){
  var $aPin = $("#main>div");
  var lastPinH = $aPin.last().get(0).offsetTop + Math.floor( $aPin.last().height()/2);
  var scrollTop = $( window ).scrollTop();
  var documentH = $( document ).height();
  return (lastPinH < scrollTop + documentH ) ? true : false;
 }
});

希望本文所述对大家学习有所帮助,谢谢大家的阅读。

Javascript 相关文章推荐
20款效果非常棒的 jQuery 插件小结分享
Nov 18 Javascript
JavaScript单元测试ABC
Apr 12 Javascript
JS中setInterval、setTimeout不能传递带参数的函数的解决方案
Apr 28 Javascript
复制js对象方法(详解)
Jul 08 Javascript
jQuery中removeClass()方法用法实例
Jan 05 Javascript
JS实现的页面自定义滚动条效果
Oct 26 Javascript
理解javascript中的严格模式
Feb 01 Javascript
轻松掌握JavaScript状态模式
Sep 07 Javascript
AngularJS折叠菜单实现方法示例
May 18 Javascript
react配合antd组件实现的管理系统示例代码
Apr 24 Javascript
新手如何快速理解js异步编程
Jun 24 Javascript
js防抖函数和节流函数使用场景和实现区别示例分析
Apr 11 Javascript
详解AngularJS Filter(过滤器)用法
Dec 28 #Javascript
原生JavaScript实现瀑布流布局
Jun 28 #Javascript
js实现瀑布流的三种方式比较
Jun 28 #Javascript
详解AngularJS中自定义过滤器
Dec 28 #Javascript
js运动应用实例解析
Dec 28 #Javascript
基于JavaScript将表单序列化类型的数据转化成对象的处理(允许对象中包含对象)
Dec 28 #Javascript
浅析JS运动
Dec 28 #Javascript
You might like
PHP中的cookie
2006/11/26 PHP
PHP cron中的批处理
2008/09/16 PHP
PHP中strtotime函数使用方法详解
2011/11/27 PHP
PHP实现的MongoDB数据库操作类分享
2014/05/12 PHP
轻松掌握php设计模式之访问者模式
2016/09/23 PHP
利用PHP获取网站访客的所在地位置
2017/01/18 PHP
jquery isType() 类型判断代码
2011/02/14 Javascript
ASP.NET jQuery 实例11 通过使用jQuery validation插件简单实现用户登录页面验证功能
2012/02/03 Javascript
Jquery多选框互相内容交换的实例代码
2013/07/04 Javascript
JS中把字符转成ASCII值的函数示例代码
2013/11/21 Javascript
如何书写高质量jQuery代码(使用jquery性能问题)
2014/06/30 Javascript
js实现文本框中输入文字页面中div层同步获取文本框内容的方法
2015/03/03 Javascript
jQuery晃动层特效实现方法
2015/03/09 Javascript
BootStrap按钮标签及基本样式
2016/11/23 Javascript
浅谈JavaScript中promise的使用
2017/01/11 Javascript
JS实现的抛物线运动效果示例
2018/01/30 Javascript
JS实现遍历不规则多维数组的方法
2018/03/21 Javascript
JS跨域请求的问题解析
2018/12/03 Javascript
Jquery获取radio选中值实例总结
2019/01/17 jQuery
浅谈js闭包理解
2019/03/28 Javascript
vue+echarts实现可拖动节点的折线图(支持拖动方向和上下限的设置)
2019/04/12 Javascript
用Python编写分析Python程序性能的工具的教程
2015/04/01 Python
下载python中Crypto库报错:ModuleNotFoundError: No module named ‘Crypto’的解决
2018/04/23 Python
django 自定义过滤器的实现
2019/02/26 Python
Django实现任意文件上传(最简单的方法)
2020/06/03 Python
python对execl 处理操作代码
2020/06/22 Python
Pycharm安装第三方库失败解决方案
2020/11/17 Python
CSS 说明横向进度条最后显示文字的实现代码
2020/11/10 HTML / CSS
HTML5 input新增type属性color颜色拾取器的实例代码
2018/08/27 HTML / CSS
新西兰最大的在线设计师眼镜店:SmartBuyGlasses新西兰
2017/10/20 全球购物
英国珠宝和手表专家:Pleasance & Harper
2020/10/21 全球购物
教师应聘自荐信范文
2014/03/14 职场文书
《她是我的朋友》教学反思
2014/04/26 职场文书
弘扬民族精神演讲稿
2014/05/07 职场文书
护理工作个人总结
2015/03/03 职场文书
my.ini优化mysql数据库性能的十个参数(推荐)
2021/05/26 MySQL