2原生JS的animate向左向右运动(offsetLeft)

同上一篇添加了

  1. step判断,判断是正数就向右运动,负数向左运动
  2. 运动到的目标值使用形参的方式传递,这样可以实现多个运动
<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<style type="text/css">
* {
    margin: 0;
    padding: 0;
}
#box {
    width: 100px;
    height: 100px;
    background-color: pink;
    position: absolute;
}
</style>
<body>
<button id="btn1">运动到400</button>
<button id="btn2">运动到600</button>
<div id="box"></div>
<script type="text/javascript">
    var btn1 = document.getElementById('btn1'); 
    var btn2 = document.getElementById('btn2'); 
    var box = document.getElementById('box');
    var timer = null;
    btn1.onclick = function () {
        animate(box, 400);
    } 
    btn2.onclick = function () {
        animate(box, 600);
    } 
    function animate(tag, target) {
        clearInterval(tag.timer);
        tag.timer = setInterval(function () {
            var current = tag.offsetLeft;
            var step = (target - current) / 10;
            step = step > 0 ? Math.ceil(step) : Math.floor(step);
            current = current + step;
            tag.style.left = current + 'px';
            if(current == target) {
                clearInterval(tag.timer);
            }
        },30)
    }
</script>
</body>
</html>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de F...
    苏黎九歌阅读 14,748评论 0 38
  • 基础复习笔记 JS效果三要素: 时间 事件 运动轨迹(分步骤来实现先死后活法逐步来) (1)获取元素 : getE...
    2e9a10d418ab阅读 3,134评论 0 3
  • 你有没有过这样的感受:身处喧闹的环境,捧起一本书,细细品味,然后四周一片寂静,仿佛天地间唯你一人…… 回忆我读书的...
    快雪時清阅读 1,592评论 0 2
  • 今天周五,对你而言是一个充满了各种期待的日子,一大早你醒来,你高兴的哼唱着"今天是个好日子,心想的事儿都能...
    梓浩妈妈阅读 1,020评论 0 1
  • 全文3139个字,阅读时间不会超过你吃一碗面的时间。 1、大脑的VR梦想体验,会让你“爽”到不想行动! 我在之前的...
    大元小师傅阅读 4,007评论 3 5