微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

基于jquery实现瀑布流布局

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

效果图:

代码:

代码如下:

rush: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 = $('
').addClass('pin').appendTo( $("#main") ); var $oBox = $('
').addClass('Box').appendTo( $oPin ); $('').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;
}
});

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐