js獲取精確的元素寬高(普通獲取高度會有誤差)

當js獲取元素寬高時, 並不是一個精確的數字,如果想獲取真正的寬高大致方法如下

                            var oStyle = obj.currentStyle ? obj.currentStyle : window.getComputedStyle(obj, null);
                            var realheight=parseFloat(oStyle.height));

發現這個問題來自於jqGrid的固定列問題,當屏幕分辨率比例非100%的時候,dom元素的寬高可能會出現小數,這時候如果用clientHeight或者jq的outerHeight都無法獲取小數部分,從而導致固定列出現錯位的情況,大致解決方法如下:

setFrozenColumns->jqGridAfterGridComplete.setFrozenColumns 方法下:  
$("#" + $.jgrid.jqID($t.p.id) + " tr[role=row].jqgrow").each(function () { //20181229 bear.Tirisfal fixed forzenCol pixel percent height problem var oStyle = this.currentStyle ? this.currentStyle : window.getComputedStyle(this, null); mh.push(parseFloat(oStyle.height)); });

當然也可以統一兩者的高度來解決問題。

當固定列的寬度出現錯位的情況,需要統一原始表格和固定列的寬,也就是 1px

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章