簡體   English   中英

奇怪的ParseFloat問題Javascript

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM