为了账号安全,请及时绑定邮箱和手机立即绑定

有点不懂?

之前我们学习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下载
官方微信