老师你确定offset和top相加是一个数字而不是字符串吗?

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

Scott丶

2015-09-09 11:15

在if判断中h和h0判断并没有得到相应的效果把

写回答 关注

5回答

  • aparch
    2016-04-20 10:17:31

    好贴必须顶

    Scott丶

    哈哈 我已经工作很久了 能力也算比较强了 有问题可以问我

    2016-05-30 14:34:58

    共 1 条回复 >

  • 木刻雪原
    2015-12-08 01:35:42

    有个地方输入错误:if (h < h0){......} 判断就变成了if(70>h0){......}

    现在改过来是这样:if (h < h0){......} 判断就变成了if(70<h0){......}

  • 木刻雪原
    2015-12-08 01:33:22

    楼主厉害,能看到这一点,也是挺厉害的。老师代码确实是错了,只不过错的地方是:

    首先,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;


  • 晓得迷路了
    2015-11-05 16:46:27

    自己测试了下 感觉代码有点错。。。

  • beijing
    2015-09-10 23:19:30

    这两个offset和top的概念没理解明白


商城分类导航效果

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

63732 学习 · 315 问题

查看课程

相似问题