元素滚动 scroll 与 scroll 事件

scroll 翻译过来就是滚动的意思,我们使用 scroll 的相关属性可以得到元素大小与滚动距离等等


scroll 的相关属性:

  • element.scrollTop:返回滚动后被卷上去的距离,返回值无单位

  • element.scrollLeft:返回滚动后被卷到左边的距离,返回值无单位

  • element.scrollWidth:返回自身的实际宽度(包含padding,不包含边框

  • element.scrollHeight:返回自身的实际高度(包含padding,不包含边框


我们在此主要研究 element.scrollTop 与 element.scrollHeight,其他两个同理

一: element.scrollHeight:

返回自身的实际高度包含padding,不包含边框,返回值无单位,主要针对的是内容超过了盒子大小溢出的情况,返回的值包括了溢出的高度

例如以下情况:

 我们此时使用此方法返回的不再是盒子大小 200,而是包括了溢出部分的高度

<style>
    div{
      width: 200px;
      height: 200px;
      border: 10px solid red;
      background-color: rgb(255, 215, 105);
    }
  </style>
</head>
<body>
  <div>我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友</div>
  <script>
    var div=document.querySelector('div');
    console.log(div.scrollHeight);
  </script>
</body>


二:element.scrollTop:

返回滚动后被卷上去的距离,返回值无单位,此处说的滚动上去是我们针对溢出的情况,往往会在样式里加上 overflow:auto,这是给盒子加上了滚动条,就可以拖动滚动条查看溢出的部分,所以此时返回的值是 拖动滚动条后,内容是相对往上移动的,返回值就是向上移动的那部分的高度

(但在此处我们还需要补充一个事件:scroll事件,即拖动滚动条就会触发

<style>
    div{
      width: 200px;
      height: 200px;
      border: 10px solid red;
      background-color: rgb(255, 215, 105);
      overflow: auto;  //滚动条
    }
  </style>
</head>
<body>
  <div>我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友我爱我女朋友</div>
  <script>
    var div=document.querySelector('div');
    div.addEventListener('scroll',function(){  //拖动滚条就会触发事件
      console.log(div.scrollTop);
    })
  </script>
</body>

可以看到拖动滚动条的过程中,事件被触发,其输出 element.scrollTop 的值一直在变化,这个值就是 被拖动到盒子上方的高度


还要注意这个是元素中被卷上去的高度,如果是要得到页面被卷上去的高度,则应写成 window.pageYOffset

猜你喜欢

转载自blog.csdn.net/weixin_52212950/article/details/123609373