> 웹 프론트엔드 > JS 튜토리얼 > Vue가 스크롤 이벤트를 수신하고 상단 또는 고정 위치에 요소를 표시하는 방법에 대한 자세한 설명

Vue가 스크롤 이벤트를 수신하고 상단 또는 고정 위치에 요소를 표시하는 방법에 대한 자세한 설명

小云云
풀어 주다: 2018-05-10 16:48:57
원래의
9244명이 탐색했습니다.

이 글은 주로 Vue의 특정 요소의 천장 또는 고정 위치 표시 구현과 스크롤 이벤트 모니터링에 대해 자세히 소개합니다. 관심 있는 친구들이 참고할 수 있기를 바랍니다.

저는 최근 특정 부분의 천장 효과를 달성해야 하는 VUE 웹 앱 프로젝트를 작성했습니다. 즉, 페이지가 위로 슬라이드되어 이 부분에 이르면 이 부분이 고정되어 상단에 표시됩니다.

1. 스크롤 이벤트를 수신합니다.
VUE를 사용하여 콘솔에 현재 스크롤 톱을 인쇄합니다. 먼저, 마운트된 후크의 창에 스크롤 수신 이벤트를 추가합니다.

mounted () {
 window.addEventListener('scroll', this.handleScroll)
},
로그인 후 복사

그런 다음 메소드에서 이 handlerScroll 메서드를 추가하세요.

handleScroll () {
 var scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop
 console.log(scrollTop)
},
로그인 후 복사

콘솔 인쇄 결과:

2. 요소에서 상단까지의 거리를 모니터링하고 스크롤 거리가 요소에서 상단까지의 거리보다 큰지 확인하고 searchBar를 true로 설정합니다. , 그렇지 않으면 false입니다

handleScroll () {
 var scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop
 var offsetTop = document.querySelector('#searchBar').offsetTop
 if (scrollTop > offsetTop) {
 this.searchBarFixed = true
 } else {
 this.searchBarFixed = false
 }
},
로그인 후 복사

Write first 요소를 맨 위에 고정하는 스타일 isFixed(적은 쓰기)

.searchBar{
 .isFixed{
 position:fixed;
 background-color:#Fff;
 top:0;
 z-index:999;
 }
 ul {
 WIDTH:100%;
 height: 40px;
 line-height: 40px;
 display: flex;
 li {
  font-size: 0.8rem;
  text-align: center;
  flex: 1;
  i {
  font-size: 0.9rem;
  padding-left: 5px;
  color: #ccc;
  }
 }
 border-bottom: 1px solid #ddd;
 }
}
로그인 후 복사

그런 다음 고정해야 하는 요소의 클래스를 searchBar에 바인딩합니다. isFixed 스타일

<p class="searchBar" id="searchBar">
 <ul :class="searchBarFixed == true ? &#39;isFixed&#39; :&#39;&#39;">
 <li>区域<i class="iconfont icon-jiantouxia"></i></li>
 <li>价格<i class="iconfont icon-jiantouxia"></i></li>
 <li>房型<i class="iconfont icon-jiantouxia"></i></li>
 <li>更多<i class="iconfont icon-jiantouxia"></i></li>
 </ul>
</p>
로그인 후 복사

수정된 결과:

이 페이지를 떠나면 모니터링되는 이 이벤트를 제거해야 합니다. 그렇지 않으면 오류가 보고됩니다.

destroyed () {
 window.removeEventListener(&#39;scroll&#39;, this.handleScroll)
},
로그인 후 복사

관련 권장 사항:


네비게이션 천장 효과를 달성하기 위해 JavaScript

js를 사용하여 탐색 모음 천장 작업을 구현하는 방법에 대한 예시 공유

react.js를 사용하여 탭 천장 구현 시 문제

위 내용은 Vue가 스크롤 이벤트를 수신하고 상단 또는 고정 위치에 요소를 표시하는 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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