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

  

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

  

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

  

  以下圖,谷歌上顯示的寬度爲1078.89px算法

  

   

  而我用控制檯輸出了 console.log( $('.mid-list').width() ); 結果以下函數

  

    

  爲了排除先入爲主的認爲四捨五入,我又調整了元素的寬度,爲1079.1px網站

  

 

  得出的結果,依然是1079spa

  

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

  以防萬一,我又試了document.getElementById().offsetWidth,得出的結果同樣(顯然jquery沒有對js作什麼過度的行爲╮(╯_╰)╭)get

  以上,在大多數狀況下,徹底符合咱們對js算法的要求,也是十分合理的設定。console

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

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

  在本次狀況的解決方法(只適用本次狀況,相似width 五入後,致使計算值略大):將獲得的width減一,也即 $('.mid-list').width() -1 , 雖然可能會致使計算出的margin略小,可是作前端的都清楚,「略大」比「略小」形成的危害要大不少

相關文章
相關標籤/搜索