我设置了有限瀑布流。但是最后两张图片重叠。求大神支招

来源:3-2 jQuery实现瀑布流布局的图片加载功能

qq_寤栦紵浼_0

2015-08-19 22:46

// JavaScript Document

$(function(){

waterFall();

var intData={"data":[{'src':'23.jpg'},{'src':'24.jpg'},{'src':'25.jpg'},{'src':'26.jpg'}]};

var num=0;

$(window).on('scroll', function(){

if(num>10){

return false}

num++;

if(checkScrollSlide){

$.each(intData.data,function(index,element){

var $box=$('<div>').addClass('box').appendTo($("#main"));

var $pic=$('<div>').addClass('pic').appendTo($box);

$('<img>').attr('src','images/'+$(element).attr('src')).appendTo($pic);

})

waterFall();

}

})

})

function waterFall()

{

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

var boxW=$boxs.eq(0).outerWidth();//outerWidth包含内边距和边框

var cols=Math.floor($(window).width()/boxW);

$("#main").width(cols*boxW).css("margin","0 auto");

var arrH=new Array();

$boxs.each(function(index, element) {

var boxH=$boxs.eq(index).outerHeight();

        if(index<cols){

arrH[index]=boxH;

}

else{

var minH=Math.min.apply(null,arrH);//获取数组中最小的元素

var minHIndex=$.inArray(minH,arrH);//获取数组中元素的索引值

$(element).css({

"position":"absolute",

"top":minH+"px",

"left":minHIndex*boxW+"px"});

arrH[minHIndex]+=$(element).outerHeight();

}

})

}


function checkScrollSlide(){

var $lastBox=$("#main>div").last();

var lastH=$lastBox.offset().top+Math.floor($lastBox.outerHeight()/2);

var scrollH=$(window).scrollTop() +$(window).height();

return (lastH<scrollH)?true:false;

}


写回答 关注

2回答

  • yang_216
    2016-05-18 10:25:20

    不知道问题解决没有啊?因为我也遇到类似的问题,不知道怎么解决?

    http://img.mukewang.com/573bd28c0001a52915620771.jpg

  • weibo_巴啦啦小魔仙哈_0
    2015-12-23 09:06:19

    我也是,最后一张加载出来就不要算上它自身一半的高度吧

瀑布流布局

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

97758 学习 · 736 问题

查看课程

相似问题