美文网首页饥人谷技术博客
元素的尺寸、位置和滚动事件的判定

元素的尺寸、位置和滚动事件的判定

作者: cccccchenyuhao | 来源:发表于2018-10-27 18:26 被阅读15次

今天碰到了2个问题:

  1. 如何判断页面滚动到底部?
  2. 如何判断元素出现在视窗中?

老规矩先打开 MDN

屏幕快照 2018-10-27 18.06.26.png

看完一系列属性一大串的文字解释,一脸懵逼。不但没看懂,还把自己看晕了
然后我翻到了这2篇博客
用Javascript获取页面元素的位置- 阮一峰的网络日志
Element size and scrolling
图片真是像我这样文字理解力差的人的福音

接下来用图片来说明如何获取元素的尺寸和位置

盒模型

盒模型.png

几何模型

几何模型.png

为了便于理解,我们对几何模型进行分解

bg2009091402.gif

clientHeight 获取元素的高度 content+padding


metric-offset-parent@2x.png

offsetTop获取该元素的左上角与父容器(offsetParent对象)左上角的距离。


bg2009091403.gif

offsetHeight 获取元素包括偏移的高度 content+padding+偏移量



bg2009091404.gif

scrollHeight获取元素整体(包括超出变成滚动显示那一部分)的高度
scrollTop 获取滚动条滚动的垂直距离


有了这些武器,开头那2个问题就迎刃而解了

1 如何判断滚动条滚动到底部?

根据以上属性的介绍不难看出来,滚动条到底部的条件即为

scrollTop + clientHeight == scrollHeight

2 如何判断一个元素是否出现在视窗中?

$node.offset().top <= $(window).height() + $(window).scrollTop()

相关文章

  • 元素的尺寸、位置和滚动事件的判定

    今天碰到了2个问题: 如何判断页面滚动到底部? 如何判断元素出现在视窗中? 老规矩先打开 MDN 看完一系列属性一...

  • 10-jQuery02

    尺寸相关、滚动事件 1、获取和设置元素的尺寸 加入购物车demo 2、获取元素相对页面的绝对位置 3、获取浏览器可...

  • jQuery事件

    尺寸相关、滚动事件 1、获取和设置元素的尺寸 width()、height()获取元素width和heightin...

  • jQuery事件

    尺寸相关、滚动事件 1、获取和设置元素的尺寸 width()、height()获取元素width和heightin...

  • 2019-06-172019-06-14(前端第十五节知识点(j

    尺寸相关、滚动事件: 1、获取和设置元素的尺寸 width()、height() 获取元素width和heigh...

  • 2019-06-17

    尺寸相关、滚动事件 1、获取和设置元素的尺寸 width()、height() 获取元素width和height...

  • DOM 查看元素的尺寸,位置和滚动条滚动

    尺寸dom.offestWidthdom.offesrHeight位置dom.offestLeft 但凡你距离你有...

  • vue监听滚动事件切换列表和监听onresize事件

    vue监听鼠标滚动事件 vue监听onresize事件 需求:(1)页面部分元素的尺寸需要根据实际打开时浏览器尺寸...

  • 关于原生scroll

    绑定事件 可以绑定在任意父元素上,只要它的子元素对应方向上的尺寸之和大于父元素对应尺寸,就可以发生滚动,在子元素发...

  • javascript之scroll事件(一)

    scroll 翻译过来就是滚动。在js中称为滚动事件,当用户滚动到指定位置或元素时会触发scroll事件。 scr...

网友评论

    本文标题:元素的尺寸、位置和滚动事件的判定

    本文链接:https://www.haomeiwen.com/subject/zxgdtqtx.html