瀏覽器寬度以及滾動條寬度計算

2021-10-07 23:23:27 字數 925 閱讀 2555

在獲取頁面寬度的時候從網上找到如下方法:

getclientwidth()

else

return clientwidth;},

const pagewidth = window.innerwidth;

然後發現乙個很神奇的事情,為什麼在不同電腦上看到的寬度都變了,在瀏覽器1280px的時候pagewidth乙個是1265px,乙個是1263px,極其奇怪,於是開始找原因。

然後看到乙個計算瀏覽器滾動條的文章,恍然大悟,原來上面那段**是獲取的不包含滾動條寬度的網頁內容的寬度!

包含滾動條的寬度應該是:

const pagewidth = window.innerwidth;
在瀏覽器1280px的時候pagewidth就是1280px!

window.innerwidth瀏覽器可用寬度

document.body.clientwidthbody的寬度

瀏覽器滾動條的計算方法是:

const scrollwidth = window.innerwidth - document.body.clientwidth;
另外:

screen.width螢幕解析度寬度

document.body.scrollwidth頁面完整寬度

document.body.scrollheight頁面完整寬度

document.body.offsetwidth網頁可見區域寬度

document.body.offsetheight網頁可見區域高度

獲取瀏覽器的預設滾動條寬度

function getbarwidth 這是在element中實現自定義滾動條中,用於獲取瀏覽器導航條寬度的原理。理解 首先建立乙個div,將他放在頁面乙個看不見的地方,通過絕對定位可以讓它脫離文件流,不會弄亂自己的頁面 雖然後面會移除 獲取 offsetwidth 包括內容 內邊距 邊框和滾動條...

獲取滾動條的寬度

做了乙個全屏的輪播圖,在設計師那發現問題,banner獲取的寬度是瀏覽器的寬度,在瀏覽器不是全屏的情況下開啟再放大瀏覽器,banner不能全屏顯示。問題其實很簡單,把獲取瀏覽器的寬度改為獲取螢幕寬度就可以了,但瀏覽器的滾動條會佔據一定的寬度,所以需要獲取瀏覽器的滾動條寬度,然後減去這部分寬度,就是b...

瀏覽器滾動條

做 時發現登入成功後瀏覽器滾動條消失無法滾動頁面 通過觀察和除錯,發現是強制隱藏了bootstrap的模態框後,body的overflow變為了hidden,同時也多了乙個17px的右內邊距,無法呼叫出垂直滾動條,解決方案 隱藏模態框的同時設定body的overflow為scroll,同時取消右內邊...