一.获取当前页面滚动条纵坐标的位置

document.body.scrollTop与document.documentElement.scrollTop

IE6/7/8/IE9及以上:
可以使用 document.documentElement.scrollTop;

Safari,Firefox:,Chrome:
可以使用 document.body.scrollTop;

二.js获取网页屏幕可视区域高度

document.body.clientWidth ==> BODY对象宽度

document.body.clientHeight ==> BODY对象高度

document.documentElement.clientWidth ==> 可见区域宽度

document.documentElement.clientHeight ==> 可见区域高度

看了以上代码,可能会有疑问说body和可见区域到底有什么不同呢,我们在console里运行一下会发现在不同的网页中有不同的情况值,有的document.body.clientWidth和document.documentElement.clientWidth 的值相同,有的却不同,原因在哪呢?

原因就是:
在浏览器默认的情况下,body有8-10px左右的边距,而可见区域包括了这个边距,因此如果我们用到body{padding:0;margin:0;}来消除这种默认的情况。那么document.body.clientWidth和document.documentElement.clientWidth 的值就会相同。

三.获取文档完整高度

网页正文全文宽:document.body.scrollWidth 基本等同于document.body.clientWidth
网页正文全文高:document.body.scrollHeight 基本等同于document.body.clientHeight

案例:
滚到底部,加载下一页数据

export default {data() {return {};},mounted() {//监听并处理函数window.addEventListener("scroll", this.handleScroll);},methods: {handleScroll(e) {if (this.getScrollTop() + this.getClientHeight() == this.getScrollHeight()) {if (Math.ceil(this.total / this.limit > this.nextPage)) {this.nextPage += 1;this.getList();}}},//获取当前滚动条的位置getScrollTop(){var scrollTop=0if(document.documentElement&&document.documentElement.scrollTop){scrollTop = document.documentElement.scrollTop}else if(document.body){scrollTop = document.body.scrollTop}return scrollTop},//获取当前可视范围的高度getClientHeight(){var clientHeight = 0if(document.body.clientHeight&&document.documentElement.clientHeight){clientHeight = Math.min(document.body.clientHeight,document.documentElement.clientHeight)}else{clientHeight = Math.max(document.body.clientHeight,document.documentElement.clientHeight)}return clientHeight},//获取文档完整的高度getScrollHeight(){return Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)}}
};

四.搞清clientHeight、offsetHeight、scrollHeight、offsetTop、scrollTop

  • clientHeight:包括padding但不包括border、水平滚动条、margin的元素的高度。对于inline的元素这个属性一直是0,单位px,只读元素。
  • offsetHeight:包括padding、border、水平滚动条,但不包括margin的元素的高度。对于inline的元素这个属性一直是0,单位px,只读元素。

  • scrollTop: 代表在有滚动条时,滚动条向下滚动的距离也就是元素顶部被遮住部分的高度。在没有滚动条时scrollTop==0恒成立。单位px,可读可设置。

  • offsetTop: 当前元素顶部距离最近父元素顶部的距离,和有没有滚动条没有关系。单位px,只读元素。

  • scrollHeight代表包括当前不可见部分的元素的高度

  • clientHeight仅指可见部分的高度
    所以scrollHeight>=clientHeight恒成立的。
    在有滚动条时讨论scrollHeight才有意义,在没有滚动条时scrollHeight==clientHeight恒成立。单位px,只读元素。

转载自:https://www.imooc.com/article/17571

js获取滚动条的位置相关推荐

  1. 利用js获取滚动条滚动距离,实现图片固定在屏幕的某个位置

    利用js获取滚动条滚动距离,实现图片固定在屏幕的某个位置 思路: 1.获取对象距离顶部和左侧的距离: 2.获取元素对象: 3.当滚动条滚动时获取滚动条滚动的距离: 4.滚动条滚动时执行函数:对象距离顶 ...

  2. js获取滚动条距离浏览器顶部,底部的高度,兼容ie和firefox

    做web开发经常会碰到需要获取浏览器的滚动条与顶部和底部的距离,然后做相应的处理动作.下面作者就如何通过js来获取浏览器滚动条距离浏览器顶部和底部的高度做一下分享,这个是同时兼容ie和firefox的 ...

  3. js获取滚动条距离浏览器顶部,底部的高度

    做web开发经常会碰到需要获取浏览器的滚动条与顶部和底部的距离,然后做相应的处理动作.下面作者就如何通过js来获取浏览器滚动条距离浏览器顶部和底部的高度做一下分享,这个是同时兼容ie和firefox的 ...

  4. JS获取鼠标光标位置并在光标位置添加内容

    目标需求 获取鼠标光标位置,然后点击按钮或其他事件,在鼠标光标的位置插入需要的文字等 准备工具 contenteditable:contenteditable属性指定元素内容是否可编辑. window ...

  5. JS控制滚动条的位置 JS控制TextArea滚动条自动滚动到最下部

    S控制滚动条的位置 window.scrollTo(x,y); 竖向滚动条置顶 window.scrollTo(0,0); 竖向滚动条置底 window.scrollTo(0,document.bod ...

  6. pc和移动端获取滚动条的位置

    移动端获取滚动条:document.body.scrollTop pc端获取滚动条:document.documentElement.scrollTop 转载于:https://www.cnblogs ...

  7. js获取滚动条的高度

    浏览器获取滚动条高度的方法 浏览器 API IE6/7/8 document.documentElement.scrollTop IE9及以上 window.pageYOffset 或者 docume ...

  8. JS 获取滚动条到底部得距离

    $(window).scroll(function() {// 变量 scrollHeight 是滚动条的总高度let scrollHeight = document.documentElement. ...

  9. JS获取滚动条到底部得距离

    // 监听滚动 FirstPage 是父组件传过来的值 判断调用哪个的 addEvent() {window.addEventListener('scroll',this.type == 'First ...

最新文章

  1. Linux系统内存的Cached Memory
  2. layuiajax提交表单控制层代码_究竟怎么用Restful风格编代码必看这篇。(二)
  3. 文科生如何入门机器学习:先看看这篇零基础教程,再多算几遍吧
  4. css学习笔记2--多重边框
  5. 约瑟夫环c语言计蒜客链表,约瑟夫环的故事 - osc_3n35hvex的个人空间 - OSCHINA - 中文开源技术交流社区...
  6. pythongui程序,python第一个GUI程序
  7. Android 尺寸 神图
  8. LeetCode MySQL 534. 游戏玩法分析 III
  9. 在python中使用什么工具管理模块_怎么使用Python pip(管理模块工具)
  10. 兔子运送胡萝卜_我如何建立和运送第一个MVP
  11. 鸿蒙空间最高级,洪荒:我能进化万物
  12. 朋友圈加粗字体数字_Excel中Ctrl键与26个字母、10个数字及特殊符号的搭配使用快捷键...
  13. XP操作系统安装的硬盘空间要求
  14. Windows 10怎样安装.msi文件?三分钟解决问题
  15. weblogic反序列化漏洞修复
  16. python第六周项目华容道_华容道游戏(中)
  17. HTML简易会员登录页面
  18. 明明200M的宽带,为什么网速还是很慢?一招教你解除限制
  19. File.separator 详解
  20. 2022(秋)工程伦理答案 第九章

热门文章

  1. 淘宝便宜的那个奥比中光摄像头(astra pro)在ubuntu16.04下Ros(kinectic)中使用说明
  2. 我在安装freenas的问题总结
  3. MySQL 的优化方案总结
  4. 第一代到第四代多址技术:从FDMA、TDMA、CDMA到OFDMA
  5. [ZT]Linux小技巧收集
  6. MyEclipse使用经验总结
  7. SpringBoot之单Redis与哨兵集群连接配置
  8. 神经网络梯度消失和梯度爆炸及解决办法
  9. 传递爱心 温暖每一个孩子
  10. 如何联系心仪的导师(保研、考研)