JS 判断页面是否有滚动条

使用JS可以判断页面是否存在滚动条,网上也有很多方法,不过由于浏览器的兼容性问题,好像还没有一个特别简单有效的方法,这里我把网上搜索到的方法大概逻列一下,然后再推荐一种更简单有效的方法。

网上方法主要归纳为:基于scrollHeight和element.clientHeight来判断 。

理论是正确的,但如果是要判断页面的body的话,别忘了还有一个工具栏、状态栏或者还会有开发工具打开的小窗口。每种浏览器标准都不太一样。所以说这种方法不太准确。于是有人想到了window.innerHeight 并加以判断。结果还是不太理想。

典型的代码如下:

function hasScrollbar() {
    return document.body.scrollHeight > (window.innerHeight || document.documentElement.clientHeight);
}

 

不经意间看到网友一个博客,感觉这个方法可取又简单兼容性还强。主要思想如下:

首先强行设定元素滚动,然后再取它的滚动距离。如此一来如果有滚动条那么取的滚动距离肯定不是0了,要是没有滚动条那取出来的滚动距离肯定就是0。这个岂不是妙哉。我把代码整理到我的个人博客了。

地址如下:https://www.lebang2020.cn/details/210129usyiq3su.html

posted @ 2021-01-29 21:54  xinsiyus  阅读(1743)  评论(0编辑  收藏  举报