为了账号安全,请及时绑定邮箱和手机立即绑定

缓冲运动怎样达到目标值?

缓冲运动怎样达到目标值?

精慕HU 2018-12-18 17:18:45
写了一个物体缓冲运动的demo,但是不能到达目标值,求解!function move(idname, speed, target) {            clearInterval(timer);            var box = document.getElementById(idname);            timer = setInterval(function(){                var v = (target-box.offsetLeft)/speed;                v = v > 0 ? Math.ceil(v):Math.floor(v);                if (parseInt(box.style.left) == target) {                                        clearInterval(timer);                } else {                    box.style.left = box.offsetLeft + v + 'px';                 }            }, 30)        }box.onmouseover = function() {                move('box', 20, 500);            }为什么是left值是633px?
查看完整描述

1 回答

?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

你的判断条件有问题,并不是运动的结果每次都会恰好等于目标值,这之间会存在误差,可能会少,可能会多,当处于某个值之后会发生v在正负之间来回摆动的问题,所以判断的条件应该是v的绝对值与目标和实际误差绝对值的比较。另外建议变量名与实际相符。

查看完整回答
反对 回复 2019-01-03
  • 1 回答
  • 0 关注
  • 418 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号