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

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

老師你確定offset和top相加是一個數字而不是字符串嗎?

在if判斷中h和h0判斷并沒有得到相應的效果把

正在回答

5 回答

好貼必須頂

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

Scott丶 提問者

哈哈 我已經工作很久了 能力也算比較強了 有問題可以問我
2016-05-30 回復 有任何疑惑可以回復我~

有個地方輸入錯誤:if (h < h0){......} 判斷就變成了if(70>h0){......}

現在改過來是這樣:if (h < h0){......} 判斷就變成了if(70<h0){......}

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

樓主厲害,能看到這一點,也是挺厲害的。老師代碼確實是錯了,只不過錯的地方是:

首先,var y = this.getElementsByTagName("div")[0].offsetHeight;

這個語句是有效的,返回值是整形70;

再次,var h = this.getElementsByTagName("div")[0].style.top + y;

這個語句有錯誤,因為this.getElementsByTagName("div")[0].style.top無法獲取其top值,沒有返回值(你可以用alert測試下);而+ y 以后,返回值是y的值,最后得出h等于70(同樣可以alert一下);

然后,if (h < h0){......} 判斷就變成了if(70>h0){......},而不是老師本意:div框距離頂部的距離加上本身的高度,是否小于h0;

最后,因為h的值是70,所以if(h<h0)仍然成立所以繼續執行{this.getElementsByTagName("div")[0].style.top = h0 + "px";},所以最后 div 框的top 仍然變成了 h0 即 192px;


改正代碼:

將: ? var h = this.getElementsByTagName("div")[0].style.top + y;

改為:var h = this.getElementsByTagName("div")[0].offsetTop + y;


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

自己測試了下 感覺代碼有點錯。。。

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

這兩個offset和top的概念沒理解明白


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

舉報

0/150
提交
取消

老師你確定offset和top相加是一個數字而不是字符串嗎?

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

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

幫助反饋 APP下載

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

公眾號

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