唯尔半截湘妃
2016-08-14 23:47
之前我们学习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值呢!不是说不可以吗?
你用chrome 打开慕课网,按F12打开调试工具,在console 里敲以下代码:
var commentBar=document.getElementById("edui2"); commentBar.style.height="100px";
你会发现,评论框工具条的高度变得很高。这说明DOM元素的style 属性是可以直接读写的。
如果老师告诉你不能直接读写,我想可能有两种情况:
老师并不是真的说style说行不能直接读写,而是用一个函数来做这件事,解决兼容性,和容错问题。建议你在重新听一下老师的说法
DOM元素的的configure(慕课一个JS进阶的教程里有详细的讲解) 属性被人为改成了false,不能更改元素的属性
我觉得上面那位同学的意思是能通过
var commentBar=document.getElementById("edui2");
commentBar.style.height="100px";
来改变height的值,而题主的意思是通过.style.heighth只是可读,而不能用这个值去参与计算判断。
在js动画中确实最后改变高度时是用style.height=某个数值+‘px’,但是在前面的不能直接用style.height
来获取高度,它只能获取内联样式中的height
商城分类导航效果
63734 学习 · 281 问题
相似问题