How to Know Which HTML Element is Causing Vertical Scroll Bar

后端 未结 8 1780
失恋的感觉
失恋的感觉 2021-01-30 10:25

I am learning Bootstrap. On the getting started menu, there are few templates given. I am playing with that. One example is about fixed Footer. I used nav from previous example

8条回答
  •  清酒与你
    2021-01-30 10:32

    There is an excellent article by Chris Coyier which explain everything you need about this problem.

    after reading this article, I personally use this code in my console to find out which element cause vertical scroll:

    press F12 in your Browser then choose console and paste the below code there and press enter:

    var all = document.getElementsByTagName("*"), i = 0, rect, docWidth = document.documentElement.offsetWidth;
    for (; i < all.length; i++) {
        rect = all[i].getBoundingClientRect();
        if (rect.right > docWidth || rect.left < 0){
            console.log(all[i]);
            all[i].style.border = '1px solid red';
        }
    }
    

    Update:
    if the above code didn't work it might be an element inside an iframe that make the page to vertically scroll. in this case you can check iframes with this code:

    var frames = document.getElementsByTagName("iframe");
    for(var i=0; i < frames.length; i++){
       var frame = frames[i];
       frame = (frame.contentWindow || frame.contentDocument);
       var all = frame.document.getElementsByTagName("*"),rect,
           docWidth = document.documentElement.offsetWidth;
       for (var j =0; j < all.length; j++) {
           rect = all[j].getBoundingClientRect();
           if (rect.right > docWidth || rect.left < 0){
               console.log(all[j]);
               all[j].style.border = '1px solid red';
           }
       }
    }
    

提交回复
热议问题