为什么我一刷新图片就堆叠到一起了

来源:-

qq_骑着蜗牛上高速_1

2018-03-27 11:00

$(window).ready(function(){

 waterfall();

 var dataInt={'data':[{'src':'1.jpg'},{'src':'2.jpg'},{'src':'3.jpg'},{'src':'4.jpg'}]};

    window.onscroll=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/p_0' + $( value).attr( 'src') ).appendTo($oBox);

            });

            waterfall();

        };

    }

});

var waterfall=function(){

 var $pin=$("#main>.pin");

 var pinwidth=$pin.eq(0).outerWidth();

 var li=Math.floor($(window).width() / pinwidth);

 $("#main").css({

  'width': pinwidth*li,

  'margin': '0 auto'

  

 });

 var arry= [];

 $pin.each(function(a,b){

  var liheight=$pin.eq(a).outerHeight();

  if(a<li){

   arry[a]=liheight;

   

  }

  else{

   var limin=Math.min.apply(null, arry);

   var liindex=$.inArray(limin,arry);

    $( b).css({

                'position': 'absolute',

                'top': limin ,

                'left': $pin.eq( liindex).position().left

           });

            arry[liindex]+=$pin.eq(a).outerHeight();//arry[liindex]+=$pin.eq(b).outerHeight();

       

  }

 });

}

function checkscrollside(){

    var $Pin = $( "#main>div" );

    var lastPinH = $Pin.last().get(0).offsetTop + Math.floor($Pin.last().height()/2);

    var scrollTop = $( window ).scrollTop()

    var documentH = $( document ).width();

    return (lastPinH < scrollTop + documentH ) ? true : false;

}

写回答 关注

1回答

  • qq_骑着蜗牛上高速_1
    2018-03-27 11:07:58

    $(window).ready(function()  


    $(window).on('load',function() //刷新以后会重新加载 所以要用load



瀑布流布局

瀑布流布局是网站比较流行的一种布局方式,教你实现三大方式

97759 学习 · 736 问题

查看课程

相似问题