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

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

為什么提示Cannot set property 'top' of undefined呢

var hArr = [];
for(var i=0;i<oBoxs.length;i++){
? ?if(i<cols){
? ? ? ?hArr.push(oBoxs[i].offsetHeight);
? ?}else{
? ? ? ?var minH = Math.min.apply(null,hArr);//求每一列圖片的高度的最小值
? ? ? ?var index = getMinhIndex(hArr,minH);
? ? ? ?oBoxs[i].style.position='absolute';
? ? ? ?oBoxs[i].style.offset.top = minH + 'px'; //該行報錯,不明白具體是什么原因呢
? ? ? ?console.log(oBoxs[index].offsetLeft);
? ? ? ?oBoxs[i].style.offset.left=oBoxW*index+'px';
? ? ? ?//oBoxs[i].style.offset.left=oBoxs[index].offsetLeft+'px';
? ?}
}

控制臺報錯,提示waterfall.js:25 Uncaught TypeError: Cannot set property 'top' of undefined

正在回答

1 回答

我知道哪里錯了,我把style.left和offsetLeft搞混淆了。百度了解了一下,具體區別如下:

1.定義:

offsetLeft: 獲取的是當前對象左側距離父對象左側的值(均不包含border);

style.left: 獲取或設置相對于具有定位屬性(position定義為relative)的父對象的左邊距;

還有個clientLeft:獲取的是當前對象的offsetLeft屬性值和到當前窗口左邊的真實值之間的距離,.?

2.如果父對象的position定義為relative,子對象的position定義為absolute,那么子對象的style.left的值是相對于父對象的值,等同于offsetLeft的值.

3.區別:

-?style.left 返回的是字符串"50px",offsetLeft返回的是數值50,如果需要對取得的值進行計算,用offsetLeft比較方便,不需要用parseInt(style.left).

-??style.left是可以設置或更改,offsetLeft是只能獲取不能更改的,因此要改變子對象的位置,只能修改style.left的值。

-??style.left的值需要?事先定義?,而且?要定義相應對象的標簽里?(即內聯style),就如上面用內嵌style的話,獲取不到style.left的值.但是offsetLeft則可以取到.


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

舉報

0/150
提交
取消

為什么提示Cannot set property 'top' of undefined呢

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

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

幫助反饋 APP下載

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

公眾號

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