javascipt变速运动问题解决
程序员文章站
2022-07-01 10:35:19
今天在实现dom对象变速运动的时候发现了一个问题,以下是js代码关于速度的部分:
timer = setinterval(function(){
//......
今天在实现dom对象变速运动的时候发现了一个问题,以下是js代码关于速度的部分:
timer = setinterval(function(){ //... console.log(odiv.offsetleft);//每次跑剩余行程的10分之一,以达到速度减缓的效果 odiv.style.left = odiv.offsetleft+(target-odiv.offsetleft)/10+'px'; //... }, 30);
从效果上看是没问题的,但从日志看很明显就有问题:
可以看出每次移动都是对计算值进行了四舍五入取整,最终当计算值小于0.5时进入了死循环。
当计算值小于1的时候统一按1处理
odiv.style.left = odiv.offsetleft+math.max((target-odiv.offsetleft)/10, 1)+'px';
推荐阅读
-
利用HBuilder将vue项目打包成移动端app,运行页面空白问题解决
-
pandas赋值失败问题解决
-
edge 浏览器自动识别电话号码解问题解决方法
-
TNS-03505问题解决总结
-
jQuery跨域问题解决方案_jquery
-
php约瑟夫问题解决关于处死犯人的算法
-
RHEL6虚拟机克隆网络问题解决方法
-
Fatal error: session_start(): Failed to initialize storage module: files问题解决方法
-
Oracle Form Builder Export导出功能问题解决
-
oracle大数据量更新引发的死锁问题解决方法及oracle分区和存储过程的思考