zoukankan      html  css  js  c++  java
  • 运动原理

    转载自:http://www.cnblogs.com/aehyok/archive/2013/05/07/3064556.html

    Jquery插件核心动画功能用原生JS写出来,而且代码非常少,为了方便网友们学习,每个功能都把注释写得非常详细,一共带有10个Demo,此次JavaScript学习笔记一(运动原理)有以下内容:

    一、基础运动框架
     
    1. 需要初始化一个定时器 var timer = null;
     
    2. 清除时间轴 clearInterval(timer);
     
    3. 设置补间动画(30针/秒) timer = setInterval(function(){},30);
     
    4. 设置速度(越大越快,越小越慢) var speed = 10;
     
    5. 判断结束位置 if( 当前值 < 目标值 ){}
     
    6. 如果到达目标值,则清除时间轴 clearInterval(timer);
     
    7. 未达到目标值,则 当前值 加 速度目标当前值 += 速度
     
    二、缓冲运动
     
    1. 逐渐变慢,最后停止
     
    2. 距离越远,速度越大 -- 速度由距离决定 -- 速度 = (目标值 - 当前值)/ 缩放系数
     
    3. Math.ceil() // 向上取整 Math.floor() // 向下取整
     
    三、运动框架改进
     
    1. 改进定时器,给多个事件元素绑定定时器,作为物体属性 oList[i].timer = null;
     
    2. 改进参数,给多个事件元素绑定参数,作为物体属性 oList2[d].alpha = 30;
     
    3. 多物体运动不要有公共参数
     
    四、弹性运动 , 碰撞运动
     
    1. 加减速运动 减速运动
    if(demo9.offsetLeft < 200){
       iSpeed+=1;
    } else if(demo9.offsetLeft >= 0) {
       iSpeed-=1;
    };
     
    2. 弹性运动 不适用 height width 不能为负数速度 += ( 目标值 - demo9.offsetLeft )/5;
     
    3. 摩擦力:速度 *= 0.7;
     
    4. 碰撞运动
     
    10个Demo如下:
     
    Example - 1 - 小方块匀速运动 [ 停止条件 : Math.abs(div1.offsetLeft - nTarget) < num ]

    Example - 2 - 图片淡入淡出[ 透明度兼容IE,FF: opacity:0.3; filter:alpha(opacity:30) ]

    Example - 3 - 小方块缓冲左右运动 [ 速度取整:iSpeed = iSpeed>0?Math.ceil(iSpeed):Math.floor(iSpeed) ]

    Example - 4 - 右边浮动层 [ parseInt(iTarget) ]

    Example - 5 - 多个DIV改变宽度 [ 给每个元素绑定时间轴 oList[i].timer = null ]

    Example - 6 - 多个IMG改变透明度 [ 给每个元素绑定属性 oList[i].alpha = null ]

    Example - 7 - 任意值运动框架( 混合多维动画 )

    Example - 8 - 完美运动框架

    Example - 10 - 碰撞运动
     
  • 相关阅读:
    SqlServer Alwayson 搭建排错记录(一)
    SqlServer图形数据库初体验
    SqlServer报错:主体“dbo”不存在
    IIS重叠回收
    No module named 'revoscalepy'问题解决
    SqlServer查询文件组被占用情况
    SqlServer作业指定目标服务器
    [持续更新]UnsatisfiedLinkError常见问题及解决方案
    Android加载SO库UnsatisfiedLinkError错误的原因及解决方案
    _set_invalid_parameter_handler异常处理函数
  • 原文地址:https://www.cnblogs.com/dkwlxq/p/3066440.html
Copyright © 2011-2022 走看看