原生js动画函数
事件高级(一)
- 给元素添加事件的问题
- 事件绑定的意义
- 事件绑定:IE - attachEvent、W3C - addEventListener
- 兼容性处理
- 封装事件绑定函数
- IE下事件绑定this指向的问题
- 解除事件绑定、匿名函数的特性
- 拖拽原理回顾
- 封装可重用的拖拽实例
事件高级(二)
- 可重用的选项卡实例
- 限制范围的拖拽实例
- 磁性吸附的拖拽实例
- 解决拖拽问题一:选中文字
- 事件捕获:setCapture()与releaseCapture()
- 合并代码,共用函数
- 碰撞检测原理
- 与DOM配合,制作带框的拖拽实例
- 处理带框拖拽的细节部分
- 用拖拽改变DIV大小实例
属性动画:
- 支持回调函数
- 支持多属性同时变化
需要注意:
- offsetWidth类的属性包括border和width,所以需要使用计算后的属性值
此时可以使用currentStyle或getComputedStyle两种方法- 需要注意是否所有属性都完成了才取消定时器,否则第一个完成属性后其他属性无法变化
1 | //获取当前o元素的attr属性c |
弹性运动:
- 加速运动:步长越来越大
- 减速运动:步长越来越小,直到负值
- 引入摩擦力系数,变成弹性公式
- 应用弹性公式:滑动菜单实例
- 解决数值精度问题:引入变量累加消除小数
- 弹性运动的停止条件:目标与速度为零
- 弹性运动的适用范围:不能运用于物体超过原大小的动画
1 | var iSpeed = 0; |
碰撞运动:
- 碰撞运动:无重力情况下的变化
- 消除运动过界时窗口出现滚动条
- 带重力的碰撞运动:向下的力不断递减
- 正小数与负小数对样式的影响
- 生成拖拽轨迹,计算拖拽速度
- 拖拽+碰撞+重力消除bug,最终演示实例
- 碰撞运动停止条件
1 | window.onload = function() { |