콘텐츠 영역이 하단으로 스크롤되는지 여부를 결정하는 js에 대한 자세한 설명

小云云
풀어 주다: 2017-12-21 09:35:09
원래의
2834명이 탐색했습니다.

콘텐츠가 끝까지 스크롤되었는지 확인하려면 콘텐츠 영역(즉, 스크롤 영역)의 실제 높이, 상단에서 스크롤 막대의 위치, 콘텐츠 영역의 표시 높이를 알아야 합니다. 이 기사는 주로 콘텐츠 영역이 아래쪽으로 스크롤되었는지 확인하는 js 기본 예제 코드를 공유하며 매우 좋은 참조 값을 가지고 있으므로 모든 사람에게 도움이 되기를 바랍니다.

은 각각 다음 세 가지 API에 해당합니다.

element.scrollHeight는 요소의 콘텐츠 높이를 가져옵니다. [읽기 전용 속성]

element.scrollTop은 요소의 오프셋 값을 가져오거나 설정할 수 있습니다. 컨테이너가 스크롤 막대의 위치를 ​​계산하는 데 자주 사용됩니다. 요소의 수직 방향 스크롤 막대를 생성하지 않으면 해당 scrollTop 값의 기본값은 0입니다.

element.clientHeight는 요소의 표시 높이를 읽습니다 [읽기 전용 속성]

다음은 MDN의 고전 공식을 직접 인용합니다

요소가 끝까지 스크롤되는지 여부를 결정합니다

요소가 끝까지 스크롤되면 다음 방정식은 true를 반환하고, 그렇지 않으면 false를 반환합니다.


element.scrollHeight - element.scrollTop === element.clientHeight
로그인 후 복사

Case - 사용자 계약

할 수 있습니다. 사용자가 계약서를 읽은 후에만 동의를 클릭합니다. 즉, 스크롤바 맨 아래에 도달하면 읽은 것을 의미합니다


<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>tab</title>
  <style>
    textarea{height: 200px;width: 300px}
  </style>
</head>
<body>

<p>
  <textarea>
    用户咨询条款
    一、咨询系统提供的服务

1、本网站咨询系统(以下简称“本系统”)为用户提供参与各种咨询项目(以下简称“项目”)的机会。用户在包之网上注册成为会员,并可申请某一专家会员通过包之网平台及电话等方式为其提供咨询服务。

2、您应按照您想要咨询的专家其所对应的专家收费金额,根据您希望互动/通话时间的长短,预先存入咨询费用,方可进行预约、咨询。咨询完成后,剩余的款项将在15个工作日内直接退还给您。您应提供详细的收款信息,否则本网站不承担任何责任。提请您注意,若预存金额过低,可能导致咨询中断。咨询费用根据本网站标准的专家收费金额及实际通话时间进行计算。您同意因银行处理本网站对您的每一笔付款所产生的全部费用将由您自行承担。

3、如果您对专家的工作内容或提供咨询服务质量等有异议,则在此等争议完全解决之前,本网站将扣留应付给您的款项。

4、如果您需要发票,应直接向提供咨询的专家要求,本网站不提供任何发票。

5、专家收费详见本网站不时发布的专家收费金额。专家收费金额及其修改均为本条款不可分割的组成部分,请您申请前仔细查看。

6、本网站根据实际情况尽可能根据您的要求、申请与专家进行匹配, 但专家有权不予提供服务。

  </textarea>
</p>
<p>
  <input type="checkbox" value="1" disabled="disabled"> 同意
</p>
<script>
  //获取checkbox元素
  var checkbox=document.querySelector(&#39;input[type=checkbox]&#39;);

  document.querySelector(&#39;textarea&#39;).addEventListener(&#39;scroll&#39;,function () {

    //读取内容区域的真实高度(滚动条高)
//    console.log(this.scrollHeight);

    //读取滚动条的位置
//    console.log(this.scrollTop);

    //设置滚动到的位置
//      this.scrollTop=800;

    //读取元素的高度
//    console.log(this.clientHeight)

    //意思就是内容总体的高度 - 滚动条的偏移值 === 元素的高度(包含内边)但不包含外边距,边框,以及滚动条
    if(this.scrollHeight-this.scrollTop===this.clientHeight){
      console.log("到达底部");
      //移除disabled属性
      checkbox.removeAttribute(&#39;disabled&#39;)
    }

  })


</script>
</body>
</html>
로그인 후 복사

좋아, 오늘 갑자기 mdn에서 이 API를 봤습니다. 잠시 고민해봤는데
Element.scrollTop

다들 배우셨나요? 서둘러서 사용해 보세요.

관련 권장사항:

하단 및 상단 기능으로 스크롤하는 div 내부 스크롤 막대 구현

jquery 페이지가 하단으로 스크롤되어 자동으로 플러그인 collection_jquery를 로드함

DIV 스크롤을 구현하는 Javascript 코드 자동으로 하단으로 스크롤 _javascriptkills

위 내용은 콘텐츠 영역이 하단으로 스크롤되는지 여부를 결정하는 js에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!