有点不懂?

来源:4-1 细节优化及扩展(一)

唯尔半截湘妃

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值呢!不是说不可以吗?

写回答 关注

2回答

  • 慕粉3473542
    2016-08-15 13:35:17
    已采纳

    你用chrome 打开慕课网,按F12打开调试工具,在console 里敲以下代码:

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

    你会发现,评论框工具条的高度变得很高。这说明DOM元素的style 属性是可以直接读写的。

    http://img.mukewang.com/57b1543a00019e6207410164.jpg

    如果老师告诉你不能直接读写,我想可能有两种情况:

    1. 老师并不是真的说style说行不能直接读写,而是用一个函数来做这件事,解决兼容性,和容错问题。建议你在重新听一下老师的说法

    2. DOM元素的的configure(慕课一个JS进阶的教程里有详细的讲解) 属性被人为改成了false,不能更改元素的属性

    唯尔半截湘妃

    老师是说这样不行:var commentBar=document.getElementById("edui2"); commentBar.style.height=commentBar.style.height+10+'px'

    2016-08-15 20:07:11

    共 1 条回复 >

  • 大块吃肉188
    2016-09-07 11:13:39

    我觉得上面那位同学的意思是能通过

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

    commentBar.style.height="100px";

    来改变height的值,而题主的意思是通过.style.heighth只是可读,而不能用这个值去参与计算判断。

    在js动画中确实最后改变高度时是用style.height=某个数值+‘px’,但是在前面的不能直接用style.height

    来获取高度,它只能获取内联样式中的height


商城分类导航效果

两种方法实现分类导航,同时扩展讲解其它商城分类导航的制作方法

63734 学习 · 281 问题

查看课程

相似问题