네 이 티 브 JS 를 사용 하여 스크롤 백 효 과 를 구현 하 는 예제 코드

3230 단어 JS롤러
1.롤러 이벤트
사용자 가 마우스 휠 을 통 해 페이지 와 상호작용 을 하고 수직 방향 에서 페이지 를 굴 릴 때 mousewheel 사건 이 발생 합 니 다.이 사건 은 전체 화면 전환 효 과 를 실현 하 는 데 필요 한 것 입 니 다.IE6,IE7,IE8,Opera 10+,Safari 5+에 서 는 모두'mousewheel'이 벤트 를 제 공 했 고 Firefox 3.5+에 서 는 같은 이 벤트 를 제공 했다.'DOMMouse Scroll'.mousewheel 이벤트 에 대응 하 는 이벤트 대상 에서 우 리 는 또 다른 특수 속성 인 wheelDelta 속성 을 사용 할 것 입 니 다.
1."mousewheel"이벤트 의"event.wheelDelta"속성 값:되 돌아 오 는 값 입 니 다.플러스 라면 롤러 가 위로 굴 러 가 는 것 을 설명 하고 마이너스 라면 롤러 가 아래로 굴 러 가 는 것 을 설명 합 니 다.되 돌아 오 는 값 은 모두 120 의 배수,즉 폭 크기=되 돌아 오 는 값/120 이다.
2."DOMMouse Scroll"이벤트 의"event.detail"속성 값:되 돌아 오 는 값 입 니 다.마이너스 라면 롤러 가 위로 굴 러 가 는 것 을 설명 합 니 다("event.wheelDelta"와 정반 대 입 니 다).플러스 라면 롤러 가 아래로 굴 러 가 는 것 을 설명 합 니 다.되 돌아 오 는 값 은 모두 3 의 배수,즉 폭 크기=되 돌아 오 는 값/3 이다.
2.실현 효과
 
소스 코드

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    * {
      margin: 0;
      padding: 0;
    }
    body {
      overflow: hidden;
    }
    .container {
      transition: .5s;
    }
    .item {
      width: 100vw;
      height: 100vh;
    }
  </style>
</head>
<body>
  <div class="container">
    <div class="item" style="background-color: rgb(255,255,0)"></div>
    <div class="item" style="background-color: rgb(255, 145, 0)"></div>
    <div class="item" style="background-color: rgb(0, 17, 255)"></div>
    <div class="item" style="background-color: rgb(0, 255, 136)"></div>
  </div>
  <script src="sun.js"></script>
  <script src='https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js'></script>
  <script>
    $(() => {
      let i = 0;
      let move = sun.throttle(e => {
        if(e.wheelDelta < 0) {
          if( i === $(".item").length - 1) return ;
          i++;
        } else {
          if( i === 0) return;
          i--;
        }
        $(".container").css("transform",`translateY(-${i*100}vh)`);
      },500);
      window.onmousewheel = move;
    })
  </script>
</body>
</html>
그 중에서 절 류 함 수 를 사 용 했 습 니 다throttle()함수 코드 는 다음 과 같 습 니 다.

 function throttle(fn,wait) {
    let endTime = 0;
    return function() {
      if(new Date() - endTime < wait) return;
      fn.apply(this,arguments);
      endTime = new Date();
    }
  },
네 이 티 브 JS 를 사용 하여 스크롤 백 효 과 를 실현 하 는 예제 코드 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 관련 JS 스크롤 백 페이지 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!

좋은 웹페이지 즐겨찾기