将匀速的物体变为减速

laomokuyite 2017-10-25 04:10:38
我这边的代码在匀速当中可以正常显示,但是为想将原来匀速的物体逐渐变慢怎么操作呀
...全文
292 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
天际的海浪 2017-10-25
  • 打赏
  • 举报
回复

var leftoffset = 100;
var speed = 7;
setInterval(function(){
	.........
	leftoffset += speed;
	speed *= 0.95;
	.........
}, 50);
jio可 2017-10-25
  • 打赏
  • 举报
回复

<div id='box' style='width: 50px;height: 50px;border: 1px pink solid; left: 0;position: absolute;background-color: pink;'></div>

 var box = document.getElementById('box'),
      o = 17,//每次移动距离
      k = 0;//记录减速移动次数
  //定时器一    
  var t1 = setInterval(function(){
    offset = parseInt(box.style.left);
    if(offset <= 2600){
      box.style.left = offset + o +'px';
      console.log('0.15秒移动'+o+'px');
    }else{
      clearInterval(t1);
    }
  },150)

  //匀速移动2秒后开始减速移动
  setTimeout(function(){
    clearInterval(t1);//关闭定时一开始定时二
    var t2 = setInterval(function(){
        offset = parseInt(box.style.left);
        k++;
        //每十次速度减一
        if(k%10 == 0){
          o--;
        }
        //无法移动停止
        if(o === 0){
           clearInterval(t2);
        }
        if(offset <= 2600){
           box.style.left = offset + o +'px';
           console.log('0.15秒移动'+o+'px');
        }else{
          clearInterval(t2);
        }
    },130)
  },2000);
jio可 2017-10-25
  • 打赏
  • 举报
回复
设置第二个减速的定时器,把那个移动7px的值逐渐变小,也就是第二个定时器里面放一个值记录执行多少次以后把这个7px递减。在第一个定时器执行多少秒以后执行第二个定时器同时清空第一个定时器。
laomokuyite 2017-10-25
  • 打赏
  • 举报
回复

87,993

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧