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

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

這個有bug啊,把瀏覽器窗口縮小時滾動式正常的,但是放大后就會有重疊現象出現了,怎么解決呢

這個有bug啊,把瀏覽器窗口縮小時滾動式正常的,但是放大后就會有重疊現象出現了,怎么解決呢

正在回答

2 回答

縮放頁面并且滾動時會執行waterfall函數,此時clientWidth發生變化,所以列數num也會發生變化;如果是縮小,那么原來在第一行的元素會被擠到下面,變成絕對定位,頁面重排;放大的話,num變大,原來在第二列的元素是絕對定位,不會回到第一排,所以部分i<num的aPin[i]仍在第二排,而在for循環中

for(var?i=0;i<aPin.length;i++){//遍歷數組aPin的每個塊框元素
????????var?pinH=aPin[i].offsetHeight;
????????if(i<num){
????????????pinHArr[i]=pinH;?//第一行中的num個塊框pin?先添加進數組pinHArr
????????}else{
????????????var?minH=Math.min.apply(null,pinHArr);//數組pinHArr中的最小值minH
????????????var?minHIndex=getminHIndex(pinHArr,minH);
????????????aPin[i].style.position='absolute';//設置絕對位移
????????????aPin[i].style.top=minH+'px';
????????????aPin[i].style.left=aPin[minHIndex].offsetLeft+'px';
????????????//數組?最小高元素的高?+?添加上的aPin[i]塊框高
????????????pinHArr[minHIndex]+=aPin[i].offsetHeight;//更新添加了塊框后的列高
????????}

會把i<num的aPin[i]當成第一排,導致頁面出現錯誤。

可以在for循環前面加一個

for(var?j?=?0;?j?<?num?;j++){
????aPin[j].style.position="";
????}

清除掉i<num的aPin[i]的絕對定位,就ok了。

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

滿滿肥肉的夏天 提問者

厲害?。?!
2016-06-09 回復 有任何疑惑可以回復我~

把var cols=Math.floor(document.documentElement.clientWidth/OboxW);改成

var cols=Math.floor(document.documentElement.scrollWidth/OboxW);就好了

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

舉報

0/150
提交
取消

這個有bug啊,把瀏覽器窗口縮小時滾動式正常的,但是放大后就會有重疊現象出現了,怎么解決呢

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

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

幫助反饋 APP下載

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

公眾號

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