JavaSprict基础-匀速动画抽取

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;
            border:1px solid #ccc;
            background: red;
            position: absolute;
        }

JS部分:

window.onload = function(){
1.获取标签
        var btn = document.getElementById('btn');
        var btn1 = document.getElementById('btn1');
        var box = document.getElementById('box');
2.点击按钮实现动画
        btn.onclick = function(){
           constant(box,800,4);
        };
        btn1.onclick = function(){
           constant(box,0,4);
        }
0.封装函数用来表示匀速动画
(obj:表示进行动画的标签)
(target:表示目标值)
(speed:表示速度)
        function constant(obj,target,speed){
清空定时器
            clearInterval(obj.timer);
            obj.timer = setInterval(function(){
根据方向来确定速度正负值
               var mySpeed = target > obj.offsetLeft?speed:-speed;
             obj.style.left = obj.offsetLeft + mySpeed +'px';
                if(Math.abs(target - obj.offsetLeft) < Math.abs( mySpeed))
                {
                    clearInterval(obj.timer);
                    obj.style.left = target +'px';
                }
            },20)
        }
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,686评论 1 92
  • 大部分的后端会很很鄙视前端。我也不知道为什么,可能大部分人都会觉得脚本语言根本不算语言。 大多人 会叫我们切图仔,...
    小黑的眼阅读 8,814评论 0 15
  • 1.几种基本数据类型?复杂数据类型?值类型和引用数据类型?堆栈数据结构? 基本数据类型:Undefined、Nul...
    极乐君阅读 10,988评论 0 106
  • 旧年已逝,新年已临,想逝去流年,总几多蹉跎几许伤感,年年复年年。 又换工作了,独自奔波千里之外,一个陌生的环境...
    海洋叔叔阅读 2,910评论 0 0
  • 寒假的时候,我每天去练书法。 第一节课,老师教了我握笔姿势,原来和铅笔的握笔姿势不一样。接着开始练横竖,一直...
    玮涵阅读 2,593评论 0 0