开发者社区> 问答> 正文

js缓动函数,控制一个div向右移动,速度是越来越快,直到300就stop?

<script>
    var id=document.getElementById("id");
    var a=0;
    var right=document.getElementById("right");
    var left=document.getElementById("left");
    var t;
    var timer=null;
    right.onclick=function(){
        timer=setInterval(function(){
            if(id.offsetLeft<300){
                id.style.left=id.offsetLeft+5+'px';
            }else{
                clearInterval(timer);
            }
        },10);
    };
    left.onclick=function(){
        timer=setInterval(function(){
            if(id.offsetLeft){
                id.style.left=id.offsetLeft-5+'px';
            }else{
                clearInterval(timer);
            }
        },10);
    };
</script>

<div class="wrapper">
    <div class="box" id="id">
    </div>
</div>
<input type="button" value="向左" id="left">
<input type="button" value="向右" id="right">

请问如何在我写的js基础上 添加一个缓动函数的效果
我的思路,用js控制一个div,向右移动开始直到最快。要有一种飞快的效果。

展开
收起
a123456678 2016-03-13 09:18:01 2635 0
1 条回答
写回答
取消 提交回答
  • 使用css3的transaction和transform。
    transaction里面定义时间和缓动函数。
    transform里面使用translate3d替代left属性来做动画,这个属性会调用显卡做加速,动画效果比left要好,流畅得多。

    2019-07-17 19:01:41
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
JavaScript函数 立即下载
Delivering Javascript to World 立即下载
编程语言如何演化-以JS的private为例 立即下载