首页 > 技术文章 > js进阶 offset

yaomengli 2017-11-01 15:33 原文

 

1. 三大家族(获取元素尺寸):offset / scroll /client

 

只是盒子本身(盒子布局)不包括margin 包括padding

offsetwidth得到的是自己的宽度=width+padding+border

offsetHeight   

 

 

offsetTop  offsetLeft (检测距离有定位的最近的父盒子的顶部和左边的距离)

div.offsetTop只能获取值(没有px) 不能赋值   divt.style.top可读取可赋值 (有px)

offsetLeft  offsetparent  检测父级盒子中带有定位的盒子 sta(父级盒子中都没有定位的话返回body  如果有返回最近的那个父盒子)

 

 

 

 

 

动画:

原理:盒子未来的位置=盒子现在的位置+步长(div.style.left=div.offsetLeft+10+"px";);

用offsetLeft取值(number类型方便计算)    用offset.style.left赋值

1.闪现动画

 function fn(){

   div.style.left=500;

}

2.匀速动画

 

3.缓慢动画

 

 bug1:点击多次之后速度越来越快怎么解决;

           执行定时器之前先清除定时器

 bug2:无法返回

          让步长变成负值

   传递的目标值如果比当前值大,步长取正直;反之取负值

 

 

 

 

 

2.冒泡+兼容+封装

 

推荐阅读