我遇到了一个仅在 iPad 上遇到的奇怪问题。似乎所有其他浏览器都可以很好地处理这个问题,但我有一个与此类似的情况:
if( parseFloat( $('#element1').css('opacity'),10).toFixed(2)!=userSetting1 ||
parseFloat( $('#element2').css('opacity'),10).toFixed(2)!=userSetting2
){ return; };
... rest of function
所以,基本上我有几个根据用户操作生成动画的元素。为了防止用户连续触发函数的其余部分,我正在测试该元素是否已完成其不透明度的动画处理。 usersetting1 和 2 是用户分别设置 element1 和 2 动画的不透明度。
所以,基本上,如果不透明度没有达到用户设置的不透明度,它就会退出该功能。除了 iPad 之外,在任何地方都可以正常工作,而且它是基于 parseFloat 的问题。
如果用户将不透明度设置为 0.15、0.25 等,则 parseFloat(,10).toFixed(2) 将起作用并允许正确测试条件。
但是,如果用户将不透明度设置为 1 或 0,则会把一切搞砸。显然 iPad 并不认为 1.0 = 1。
有什么办法可以解决这个问题吗?
最佳答案
好的,刚刚想通了。 iPad 似乎正在将我的元素(假设 userSetting1 为 0.15)动画化为 0.1503850384038439248。因此,我必须在用户设置和 .css 拉取上运行 .toFixed(2)。
关于javascript - 奇怪的 ParseFloat 问题 Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16552685/