基于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 相关文章推荐
jQuery 全选效果实现代码
Mar 23 Javascript
JQuery select标签操作代码段
May 16 Javascript
利用jquery操作select下拉列表框的代码
Jun 04 Javascript
IE6浏览器中window.location.href无效的解决方法
Nov 20 Javascript
解决bootstrap中modal遇到Esc键无法关闭页面
Mar 09 Javascript
jQuery scrollFix滚动定位插件
Apr 01 Javascript
js获取本机操作系统类型的两种方法
Dec 19 Javascript
js模仿java的Map集合详解
Jan 06 Javascript
canvas实现十二星座星空图
Feb 14 Javascript
Omi v1.0.2发布正式支持传递javascript表达式
Mar 21 Javascript
详解webpack + vue + node 打造单页面(入门篇)
Sep 23 Javascript
layer.alert回调函数执行关闭弹窗的实例
Sep 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中常用数组处理方法实例分析
2008/08/30 PHP
php实现的用户查询类实例
2015/06/18 PHP
PHP5.5安装PHPRedis扩展及连接测试方法
2017/01/22 PHP
解决PHP 7编译安装错误:cannot stat ‘phar.phar’: No such file or directory
2017/02/25 PHP
浅谈laravel aliases别名的原理
2019/10/24 PHP
PHP中类与对象功能、用法实例解读
2020/03/27 PHP
php操作redis常见方法示例【key与value操作】
2020/04/14 PHP
php中yii框架实例用法
2020/12/22 PHP
真正的JQuery.ajax传递中文参数的解决方法
2011/05/28 Javascript
将查询条件的input、select清空
2014/01/14 Javascript
JavaScript中双叹号!!作用示例介绍
2014/09/21 Javascript
JQuery radio(单选按钮)操作方法汇总
2015/04/15 Javascript
详解Document.Cookie
2015/12/25 Javascript
JavaScript+html5 canvas实现本地截图教程
2020/04/16 Javascript
纯JS代码实现气泡效果
2016/05/04 Javascript
jQuery与js实现颜色渐变的方法
2016/12/30 Javascript
微信小程序 websocket 实现SpringMVC+Spring+Mybatis
2017/08/04 Javascript
原生js封装运动框架的示例讲解
2017/10/01 Javascript
Vue-router结合transition实现app前进后退动画切换效果的实例
2017/10/11 Javascript
JS实现键值对遍历json数组功能示例
2018/05/30 Javascript
jQuery实现获取选中复选框的值实例详解
2018/06/28 jQuery
vue基础之模板和过滤器用法实例分析
2019/03/12 Javascript
基于javascript实现放大镜特效
2020/12/03 Javascript
Python字符编码与函数的基本使用方法
2017/09/30 Python
Python实现的自定义多线程多进程类示例
2018/03/23 Python
对python指数、幂数拟合curve_fit详解
2018/12/29 Python
Python pip install如何修改默认下载路径
2020/04/29 Python
关于css兼容性问题及一些常见问题汇总
2016/05/03 HTML / CSS
日本亚马逊官方网站:Amazon.co.jp
2020/04/14 全球购物
Shell编程面试题
2016/05/29 面试题
庆中秋节主题活动方案
2014/02/03 职场文书
小学生植树节活动总结
2014/07/04 职场文书
农村环境卫生倡议书
2015/04/29 职场文书
2016幼儿园中班开学寄语
2015/12/03 职场文书
2016年学校综治宣传月活动总结
2016/03/16 职场文书
MySQL中几种插入和批量语句实例详解
2021/09/14 MySQL