亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

為什么第七張后的圖left沒有和上一排高度最小的圖片對齊

$(window).on('load',function(){
?waterfall();
})

? function waterfall(){
????? var $boxs=$('#main>div');//只找一級div
? ?? var w=$boxs.eq(0).outerWidth();
?? var cols=Math.floor($(window).width()/w);
?? $('#main').width(w*cols).css('margin','0 auto');
?? var hArr=[];
?? $boxs.each(function(index, value) {
?????? var h=$boxs.eq(index).outerHeight();
??? if(index<cols){
???? hArr[index]=h;//前六張
???? }else{
????? var minH=Math.min.apply(null,hArr);
????? var minHIndex=$.inArray(minH,hArr);//minH在hArr中的索引
????? $(value).css({
?????? 'position':'absolute',
?????? 'top':minH+'px',
?????? 'left':3*w+'px',
???? })
??? }
?? })
??
?}


正在回答

2 回答

$(window).on('load',?function?()?{
//取得圖片整個容器DOM對象
var?$boxs?=?$("#main>div");
//?一個圖片框的寬
var?w?=?$boxs.eq(0).outerWidth();
//每行能展示的圖片列數
var?cols?=?Math.floor($(window).width()?/?w);
//給最外圍的main元素設置寬度和外邊距
$('#main').width(w?*?cols).css('margin',?'0?auto');
//并求出#main元素的左側和頁面邊界的距離,供下面計算使用
var?letPadding?=?($(window).width()?-?cols?*?w)?/?2;
//用于存儲?每張圖片容器高度。
var?hArr?=?[];
$boxs.each(function?(index,?value)?{
//?返回每個圖片容器的高度值
var?h?=?$boxs.eq(index).outerHeight();
//第一行圖片的條件是?index?<?cols
if?(index?<?cols)?{
//每次給數組存入高度值
hArr[index]?=?h;
}?else?{
var?minH?=?Math.min.apply(null,?hArr);
var?minHIndex?=?$.inArray(minH,?hArr);
let?leftPx?=?minHIndex?*?w?+?letPadding;
$(value).css({
'position':?'absolute',
'top':?minH?+?'px',
'left':?leftPx?+?'px'
})
//累計改變hArr中最小元素的高度值,直到$boxs數組最后一個元素完成時,結束
hArr[minHIndex]?+=?$boxs.eq(index).outerHeight();
}
})
$('#main').width(w?*?cols).css('margin',?'0?auto');
})


0 回復 有任何疑惑可以回復我~
#1

Jason_途牛

34行是多余的
2018-09-15 回復 有任何疑惑可以回復我~

已看到錯誤

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

為什么第七張后的圖left沒有和上一排高度最小的圖片對齊

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號