老师你确定offset和top相加是一个数字而不是字符串吗?
在if判断中h和h0判断并没有得到相应的效果把
在if判断中h和h0判断并没有得到相应的效果把
2015-09-09
楼主厉害,能看到这一点,也是挺厉害的。老师代码确实是错了,只不过错的地方是:
首先,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;
举报