我有一個奇怪的問題,我只在iPad上遇到。似乎所有其他瀏覽器都能就好處理這個問題,但我有一個類似的條件:奇怪的ParseFloat問題Javascript
if(parseFloat($('#element1').css('opacity'),10).toFixed(2)!=userSetting1 ||
parseFloat($('#element2').css('opacity'),10).toFixed(2)!=userSetting2
){ return; };
... rest of function
所以,基本上我有一對夫婦,從用戶操作動畫元素。爲了防止用戶持續觸發其餘的功能,我正在測試以查看元素是否完成了其不透明動畫。用戶設置1和2是用戶分別將元素1和2設置爲動畫的不透明度。
因此,基本上,如果不透明度未達到用戶設置的不透明度,則會退出該功能。在任何地方都能很好地工作,除了iPad,它基於parseFloat的問題。
如果用戶將0.15,0.25等設置爲不透明度設置,則parseFloat(,10).toFixed(2)將起作用並允許條件正確測試。
但是,如果用戶爲不透明度設置1或0,則會將所有內容擰緊。顯然iPad不認爲1.0 = 1.
如果有什麼辦法解決這個問題?
一些最古怪的代碼格式我見過。但+1好問題。 – sgroves
由於某種原因,它可能變成「0.99」嗎?我有一種感覺,它在某種程度上與浮點運算有關。雖然我不確定你的'parseFloat(,10).toFixed(2)'是... – Ian
jQuery可以做$('element')。is(':animated')來測試是否有動畫,或許與比較不透明字符串值相比,這是一個更好的測試。 http://api.jquery.com/animated-selector/ –