请求动画帧不适用于小于 1 的十进制数
requestAnimationFrame not working with decimal numbers below 1
requestAnimationFrame由于某种原因不适用于小数。通常在画布上制作动画时,我可以使用小数,但在 dom 元素的情况下,我会失败。正如您在下面看到的,我正在对单个div 的左侧位置进行动画处理,该位置适用于 n> 1,但不适用于 n <1(0.1、0.2 等)。
为什么会这样呢?
https://jsfiddle.net/m1qzqvu8
var elem = document.getElementsByTagName('div')[0]
function fn(){
var x = parseInt(elem.style.left);
x += 0.4
elem.style.left = x + "px"
requestAnimationFrame(fn)
}
fn()
我试图完成这项工作的原因是速度。我需要让事情变慢或更快。
您正在使用parseInt
.这会将十进制值舍入为整数,因此您总是会得到parseInt(10.4) + 0.4 = 10 + 0.4 = 10.4
,无休止地迭代。
使用 parseFloat 应该可以纠正此问题:https://jsfiddle.net/m1qzqvu8/1/
注意:您应该始终提供基数参数以parseInt
。
相关文章:
- 如何生成十进制数
- 将一个十进制数转换成八分之一的分数
- JavaScript basis 是 math.pow 函数中的十进制数
- 用于验证十进制数的正则表达式
- 如何使用 javascript 将浮点数格式化为十进制数(7)
- 如何在javascript中输入十进制数
- 使用jquery验证器插件为十进制数设置正则表达式
- 用于在字符串中查找十进制数的正则表达式
- TypeError:b未定义,如果结果集中的行数小于pageLength
- 如何验证十进制数
- 在 sort() 之后,十进制数的 JavaScript 数组顺序不正确
- 为什么项目符号图显示十进制数,而我们的范围为1
- 输入字段不保存十进制数并将其设置为 ,00
- 使用带有 .NET MVC 的 Javascript 将十进制数格式化为两位
- j查询添加十进制数
- 如何将十进制数添加到时间并将其作为时间格式恢复
- AngularJS双向绑定输入到十进制数
- 请求动画帧不适用于小于 1 的十进制数
- 如何使用 id 输入类型=“文本”JavaScript 中的值设置自动 2 个十进制数
- 将十进制数转换为浮点数并将其截断