[英]Odd ParseFloat Issue Javascript
我有一個奇怪的問題,我只能在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)。
var iOS = parseFloat(('' + (/CPU.*OS ([0-9_]{1,5})|(CPU like).*AppleWebKit.*Mobile/i.exec(navigator.userAgent) || [0,''])[1])
.replace('undefined', '3_2').replace('_', '.').replace('_', ''));
if( iOS ( $('#element1').css('opacity'),10).toFixed(2)!=userSetting1 ||
iOS ( $('#element2').css('opacity'),10).toFixed(2)!=userSetting2){ return; };
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.