關於 jquery和js獲取寬度時只能取整數,取不到小數點


  

  最近在改版自已的一個網站的時候,遇到了一個問題。

  

  用jquery的width()函數獲取元素寬度的時候,返回得到的是整數,而不是小數。

  

  如下圖,谷歌上顯示的寬度為1078.89px

  

   

  而我用控制台輸出了 console.log( $('.mid-list').width() ); 結果如下

  

    

  為了排除先入為主的認為四舍五入,我又調整了元素的寬度,為1079.1px

  

 

  得出的結果,依然是1079

  

  顯然,其算法確實是四舍五入。

  以防萬一,我又試了document.getElementById().offsetWidth,得出的結果一樣(顯然jquery沒有對js做什么過分的行為╮(╯_╰)╭)

  以上,在大多數情況下,完全符合我們對js算法的要求,也是十分合理的設定。

  但是,在這次我在改版網站的時候,打算用js來獲取父元素寬度,再以此來算出內部元素之間的margin,並賦值。

  結果不盡人意,獲取width的時候得到的數據不准確,四舍的時候還好,但是五入的時候,原本的1078.89被算成了1079,從而計算出的margin略大,導致了內部元素的間隔不准確。

  在本次情況的解決方法(只適用本次情況,類似width 五入后,導致計算值略大):將得到的width減一,也即 $('.mid-list').width() -1 , 雖然可能會導致計算出的margin略小,但是做前端的都清楚,“略大”比“略小”造成的危害要大很多

 

 

 

 

 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM