js如何获取滚动条的高度
由于市面上浏览器的种类众多,但是浏览器没有一个通用的方法来获取该值,想做到每个浏览器都兼容还是要下一些功夫的。
目前主流浏览器除IE外对浏览器标准支持都比较好,例如chrome、firefox以及safari等。对应后者,可以通过window对象的pageYOffset属性来取到当前滚动条到页面顶部的高度。对于万恶的IE来说就比较麻烦一点,它依赖当前文档类型。文档类型分为Standards Mode和Quirks Mode,页面声明了DOCTYPE时为Standards Mode,反之为Quirks Mode。可以使用document.compatMode来获取,该方法也同时支持其他浏览器,其返回值为BackCompat或CSS1Compat,含义如下:
BackCompat Standards-compliant mode is not switched on. (Quirks Mode) CSS1Compat Standards-compliant mode is switched on. (Standards Mode)
由于IE对盒模型的渲染跟文档类型有很大关系,所以获取滚动条高度的方式也是不一样的。当文档类型为Standards Mode,获取方式为:document.documentElement.scrollTop,而Quirks Mode时则为:document.body.scrollTop。
理解上面的所提到的差异后,用代码实现就很容易了,具体实现的代码如下:
function getScrollTop1() {if ('pageYOffset' in window) {return window.pageYOffset;} else if (document.compatMode === "BackCompat") {return document.body.scrollTop;} else {return document.documentElement.scrollTop;} }
甚至可以修改上述代码,使用一行代码搞定,但是可读性没有上面好,代码如下:
function getScrollTop() {return !('pageYOffset' in window)? (document.compatMode === "BackCompat")? document.body.scrollTop: document.documentElement.scrollTop: window.pageYOffset; } 或 function getScrollTop() {return ('pageYOffset' in window) ? window.pageYOffset: document.compatMode === "BackCompat"&& document.body.scrollTop|| document.documentElement.scrollTop ; }
另外除了上述document.compatMode的方式来获取文档类型外,还可以使用 document.defaultView来获取。在IE 9以下的Quirks Mode中document不支持defaultView属性。参考地址:https://developer.mozilla.org/en-US/docs/DOM/document.defaultView。
js如何获取滚动条的高度相关推荐
- js获取滚动条的高度
浏览器获取滚动条高度的方法 浏览器 API IE6/7/8 document.documentElement.scrollTop IE9及以上 window.pageYOffset 或者 docume ...
- js获取页面高度获取视口高度获取内容高度获取滚动条宽度高度
element对象的宽高属性 1. DOM树 2.document对象 3.element对象 4. 获取元素高度宽度 1. DOM树 浏览器根据DOM模型,将结构化文档HTML解析成节点,DOM的最 ...
- js,jq获取 滚动条高度 及 浏览器宽高
***获取 滚动条高度*** // 获取 滚动条高度 console.log(window.scrollY); console.log(window.pageYOffset); console.log ...
- js中获取dom元素高度
目录 1.dom元素的宽高 2.鼠标事件中的常用高度宽度: 3. 总结: 4.参考博客: 1.dom元素的宽高 javascript中获取dom元素高度和宽度的方法如下: 网页可视区域宽: docum ...
- Vue中获取滚动条的高度的方法
mounted() {//可以在这里面直接进行滚动条的获取 window.addEventListener('scroll', this.handleScroll, true)} methods: { ...
- js 获取滚动条的高度
function getScrollTop() {var scroll_top = 0;if (document.documentElement && document.documen ...
- js原生获取html的高度,如何通过js获取Html元素的实际宽度高度
如何通过js获取Html元素的实际宽度高度 发布时间:2020-04-24 15:23:24 来源:亿速云 阅读:136 作者:小新 今天小编给大家分享的是如何通过js获取Html元素的实际宽度高度, ...
- 实时获取滚动条的高度_适用于星上快速处理的雷达高度计有效波高反演技术
卫星雷达高度计的主要观测参数之一为有效波高,数据产品中其数值的确定通过波形重跟踪来实现(Retracking),波形重跟踪的实现主要通过最大似然迭代完成,其主要的反演公示为W(t) = PFS(t)* ...
- js 如何获取浏览器的高度和宽度
IE中: document.body.clientWidth ==> BODY对象宽度 document.body.clientHeight ==> BODY对象高度 document.d ...
最新文章
- 解析远程服务器响应错误,远程服务器返回一个意外的响应:(400)错误的请求,WCF...
- binaryreader java,C# 二进制文件的读写 | 菜鸟教程
- mysql cte 表不存在_使用CTE解决复杂查询的问题_MySQL
- Java中System.setProperty()用法
- SAP Spartacus Route Alias
- 推荐一个Chrome扩展应用,能够自动去除CSDN广告
- 四叶草引导windows和linux,Windows环境下使用Clover四叶草引导双硬盘安装OSX 10.11.5原版镜像...
- 【原创】请不要对Boost Format使用Byte作为参数
- JavaScript 'Pig latin is cool'=='igPay atinlay siay oolcay'
- 用生动的案例一步步带你学会python多线程模块
- python为源文件指定系统默认_Python 设置系统默认编码
- S3C2440时钟电源管理
- (转)知乎-区块链技术:如何赋能供应链创新
- Python实现音乐推荐系统【跟着迪哥学python】
- 金蝶K3批量出库语句与执行方法
- fluent瞬态_瞬态环境
- linux 怎么关闭输入法快捷键设置方法,关闭输入法快捷键
- 【显示器知识 帮新手扫盲+自我总结】
- 淘宝API 拍立淘图片搜索接口
- c语言格式字符二进制,C语言printf如何输出二进制数格式?将十进制数转为二进制输出...