首页 > 编程 > JavaScript > 正文

基于jquery实现瀑布流布局

2019-11-20 10:54:18
字体:
来源:转载
供稿:网友

本文实例为大家介绍了基于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;  }});

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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表