1. 程式人生 > >JS學習40:計算滾動條的寬度

JS學習40:計算滾動條的寬度

http://qianduanblog.com/post/js-learning-40-get-scrollbar-width.html

在計算滾動條之前,說明下滾動條的佔位方式。在PC瀏覽器中,滾動條是佔位元素的內邊距和內容區域的;而在移動瀏覽器中,滾動條是不佔用內邊距和內容區域,並且還及時顯隱。因此,只需要在在PC瀏覽器中計算滾動條的寬度,尤其是在全屏彈窗不可滾動的情況中。

詳細方法如下(offsetWidth-clientWidth):

  1. function getScrollbarWidth(){
  2. var oP = document.createElement('p'),
  3. styles =
    {
  4. width:'100px',
  5. height:'100px',
  6. overflowY:'scroll'
  7. }, i, scrollbarWidth;
  8. for(i in styles) oP.style[i]= styles[i];
  9. document.body.appendChild(oP);
  10. scrollbarWidth = oP.offsetWidth - oP.clientWidth;
  11. oP.remove();
  12. return scrollbarWidth;
  13. }

方法2(clientWidth-clientWidth):

  1. function getScrollbarWidth(){
  2. var oP
    = document.createElement('p'),
  3. styles ={
  4. width:'100px',
  5. height:'100px'
  6. }, i, clientWidth1, clientWidth2, scrollbarWidth;
  7. for(i in styles) oP.style[i]= styles[i];
  8. document.body.appendChild(oP);
  9. clientWidth1 = oP.clientWidth;
  10. oP.style.overflowY ='scroll';
  11. clientWidth2 = oP.clientWidth;
  12. scrollbarWidth =
    clientWidth1 - clientWidth2;
  13. oP.remove();
  14. return scrollbarWidth;
  15. }