1. 程式人生 > >JS無法取得display:none元素的寬高

JS無法取得display:none元素的寬高

     需求:滑鼠點選某處後,顯示隱藏的div。因需定位div位置,所以需要獲取div的寬高。

     問題:第一次點選顯示總是出錯,以後則正常。

     原因:初始化時div.style.display="none"。用display:none表示不佔用空間,元素沒有物理尺寸。因此原生JS無法獲得display:none的元素的寬高。

    解決方案:初始化時用 visibility:hidden;來代替。使能js能獲得元素尺寸。後面再將visibility與display設定正常。   但一般js的框架,庫都已經封裝了這個方法,比如jQ,我們可以直接使用 height()和width()方法獲取隱藏元素的尺寸。