2.动画的实现

    ①实现原理:利用事件和定时器改变样式属性

    ②物体渐变:利用opacity       

document.getElementById("jb").onclick = function () {

            var time2 = 1

            var d = setInterval(function () {

                  time2 -= 0.1

                  document.getElementById("jb").style.opacity = time2

                  if (time2 < 0) {

                        clearInterval(d)

                  }

            }, 1000)

      }

    ③div变宽:    

document.getElementById("bk").onclick = function () {

            var time3 = 80

            var e = setInterval(function () {

                  time3 += 10

                  document.getElementById("bk").style.width = time3 + "px"

                  if (time3 == 300) {

                        clearInterval(e)

                  }

            }, 1000)

      }

    ④物体移动:控制margin或定位 

document.getElementById("yd").onclick = function () {

            var time4 = 1

            var f = setInterval(function () {

                  time4 += 5

                  document.getElementById("yd").style.marginLeft = time4 + "px"

                  if (time4 == 500) {

                        clearInterval(f)

                  }

            }, 1000)

      }

3.动画的封装:把你要用到的常用动画自己封装起来(学会封装的思路),函数的本质就是把具有特点功能的代码封装在一起,所以,我们可以将动画中可变化的量当做参数进行封装。

4.offset系列

   ①offsetLeft:

              如果父元素没有定位,获取元素距离浏览器最左边的距离

              如果父元素有定位,获取元素距离父元素最左边的距离 

   ②offsetTop:

              如果父元素没有定位,获取元素距离浏览器最上面的距离

              如果父元素有定位,获取元素距离父元素最上面的距离 

   ③offsetWidth:

              获取元素的宽度,包括边框以内的,不包括外边距

   ④offsetHeight:

              获取元素的高度,包括边框以内的,不包括外边距

   ⑤offsetParent:获取父元素

              ❶ 元素有固定定位,获取到的是null

              ❷ 元素没有固定定位,如果元素所有的父级元素都没定位,得到body

              ❸元素没有固定定位,如果元素的父级元素有定位,得到离他最近的有定位的父级元素

   ⑥注:首先没有offsetRight和offsetBottom,

              然后上面提到的定位包括绝对定位和相对定位,固定定位

5.scroll系列

    ①scrollTop:

                     获得的是内容超出父元素的高度

                     比如:往下滚动,内容会向上走,超出部分即为获取到的

    ②scrollLeft:

                     获得的是内容超出父元素的高度

                     比如:往右滚动,内容会向左走,超出部分即为获取到的

    ③scrollWidth:

                     获得元素的实际宽度,在内容没有超出盒子时,获得的是盒子的内部宽度。内容超出盒子时获得的是内容实际应有的宽度。

    ④scrollHeight:

                     获得元素的实际高度,在内容没有超出盒子时,获得的是盒子的内部高度。内容超出盒子时获得的是内容实际应有的高度。

    ⑤注:①②设置时要给父元素设置

              没有scrollbottom,scrollRight

              ②③当盒子内部存在滚动条时,获得的高度和宽度不包括滚动条

6.client系列

    ①clientTop:获得元素上边框的宽度

    ②clientLeft:获得元素左边框的宽度

    ③clientWidth:获取元素边框内部的宽度,不包括边框

    ④clientHeight:获取元素边框内部的高度,不包括边框

    ⑤注:首先区分③ ④与off对应的区别,包不包括边框

              然后 当盒子内部存在滚动条时,获得的高度和宽度不包括滚动条。