簡單的說就是設置body的寬度,那麼如何動態的獲取瀏覽器減去側邊滾動條以後的寬度,原理就是經過建立一個帶有css
滾動條的div(也就是overflow:scroll),利用offsetWidth-clientWidth獲得滾動條的寬度,再利用瀏覽器
window.screen.availWidth減去滾動條的寬度便可獲得瀏覽器除了滾動條之外的寬度,body再設置該寬度,便可解決app
縮放排版錯亂的問題,代碼展現以下
--------------------- spa
1 function setBodyWidth(){ 2 var barWidthHelper=document.createElement('div'); 3 barWidthHelper.style.cssText="overflow:scroll; width:100px; height:100px;"; 4 document.body.appendChild(barWidthHelper); 5 var barWidth=barWidthHelper.offsetWidth-barWidthHelper.clientWidth; 6 document.body.removeChild(barWidthHelper); 7 var bodyWidth=window.screen.availWidth-barWidth; 8 return bodyWidth; 9 } 10 11 $(document).ready( 12 function(){ 13 var bodyWidth=setBodyWidth()+"px"; 14 //document.body.style.width=bodyWidth; 15 $("body").css("width",bodyWidth); 16 } 17 );
window.screen.availHeight與window.screen.height的區別就是一個任務欄高度的區別。code