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

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

有點不懂?

之前我們學習js動畫時,講師告訴我們要用

function getStyle(obj,attr){

if (obj.currentStyle) {

return obj.currentStyle[attr];

}else{

return getComputedStyle(obj,false)[attr];

}

}

來獲取css樣式,這樣獲取的才是可寫的,如果直接用ele.style.height只是可讀的,但是為什么在本節課里,可以var h = this.getElementsByTagName("div")[0].style.top + y;直接獲取它的top值呢!不是說不可以嗎?

正在回答

2 回答

你用chrome 打開慕課網,按F12打開調試工具,在console 里敲以下代碼:

var?commentBar=document.getElementById("edui2");
commentBar.style.height="100px";

你會發現,評論框工具條的高度變得很高。這說明DOM元素的style 屬性是可以直接讀寫的。

http://img1.sycdn.imooc.com//57b1543a00019e6207410164.jpg

如果老師告訴你不能直接讀寫,我想可能有兩種情況:

  1. 老師并不是真的說style說行不能直接讀寫,而是用一個函數來做這件事,解決兼容性,和容錯問題。建議你在重新聽一下老師的說法

  2. DOM元素的的configure(慕課一個JS進階的教程里有詳細的講解) 屬性被人為改成了false,不能更改元素的屬性

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

唯爾半截湘妃 提問者

老師是說這樣不行:var commentBar=document.getElementById("edui2"); commentBar.style.height=commentBar.style.height+10+'px'
2016-08-15 回復 有任何疑惑可以回復我~

我覺得上面那位同學的意思是能通過

var commentBar=document.getElementById("edui2");

commentBar.style.height="100px";

來改變height的值,而題主的意思是通過.style.heighth只是可讀,而不能用這個值去參與計算判斷。

在js動畫中確實最后改變高度時是用style.height=某個數值+‘px’,但是在前面的不能直接用style.height

來獲取高度,它只能獲取內聯樣式中的height


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

舉報

0/150
提交
取消

有點不懂?

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

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

幫助反饋 APP下載

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

公眾號

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