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


免責聲明!

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



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