原生javascript 基础动画函数封装(一)

<!DOCTYPE html>
<html>
<head>
<title></title>
<style type="text/css">
*{ margin:0;padding: 0;}
div{position: absolute; width: 100px; height: 100px; background: red; left: 0;top: 100px;}
</style>
</head>
<body>
<button id="btn1">向右</button>
<button id="btn2">向左</button>
<div id="box"></div>

<script type="text/javascript">
    window.onload = function(){
        var btn1 = document.getElementById('btn1');
        var btn2 = document.getElementById('btn2');
        var box = document.getElementById('box');

        btn1.onclick = function(){
            move(box,12,600);
        }

        btn2.onclick = function(){
            move(box,-12,0);
        }
        /*
            obj:要运动的元素
            dir:步长
            target:目标点
        */
        function move(obj,dir,target){
            // 1、清除定时器
            clearInterval(obj.timer);
            // 2、设置定时器
            obj.timer = setInterval(function(){
                // 3、获取元素当前位置+步长
                var speed = obj.offsetLeft + dir;
                console.log(speed)
                // 4、如果元素当前位置超过目标点,则把当前位置==目标点
                if( speed > target && dir > 0 || speed < target && dir < 0){
                    speed = target
                }
                // 5、设置元素位置
                obj.style.left = speed + 'px';
                // 6、判断是否到达目标点,如果到达则停止定时器
                if(speed == target){
                    clearInterval(obj.timer);
                }
            },20)
        }
    }
</script>
</body>
</html>
  

 

posted @ 2018-10-26 13:54  雅士伊人  阅读(171)  评论(0编辑  收藏  举报