js-减速动画抽取

  • HTML部分:
<button id="btn">开始动画</button>
<button id="btn1">返回动画</button>
<div id="box" class="box"></div>
  • CSS部分:
 *{
            margin: 0;
            padding: 0;
            border:none;
        }
        div{
            width: 100px;
            height: 100px;
            background: red;
            position: absolute;
        }
  • JS部分:
  window.onload = function(){
1.获取标签
        var box = document.getElementById('box');
        var btn = document.getElementById('btn');
        var btn1 = document.getElementById('btn1');
2.点击按钮开始动画
        btn.onclick  = function(){
            buffer(box,800);
        }
        btn1.onclick = function(){
            buffer(box,0);
        }
0.封装减速动画
(obj:表示进行动画的标签)
(target:表示目标值)
        function  buffer(obj,target){
            clearInterval(obj.timer);
            obj.timer = setInterval(function(){
                begin = box.offsetLeft;
三木运算符进行比较如果是正值就像上取整,反之向下。
                var speed = target > begin ?Math.ceil((target - begin)*0.2):Math.floor((target - begin)*0.2);
                obj.style.left = begin +speed +'px';
                if (begin == target){
                   clearInterval(obj.timer);
                }
            },20)
        }
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 定时器的认识 定时器:就是可以不断地自动的重复某一个操作的东西。 定时的分类:1.多次定时器:setInterva...
    MGd阅读 2,425评论 0 0
  • 单例模式 适用场景:可能会在场景中使用到对象,但只有一个实例,加载时并不主动创建,需要时才创建 最常见的单例模式,...
    Obeing阅读 6,362评论 1 10
  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 12,378评论 2 17
  • 1. tab列表折叠效果 html: 能源系统事业部 岗位名称: 工作地点 岗位名...
    lilyping阅读 5,882评论 0 1
  • 36期亲子班第6组-殷光琴 (张镐然10岁)加油! #口号(只有感觉好才能做得好) 孩子第三个30天目标: 1、英...
    yincarol琴阅读 877评论 0 0