js 애니메이션 이 있 는 귀환 을 실현 합 니 다.

5011 단어 js끝!
본 논문 의 사례 는 js 가 애니메이션 반환 상단 을 가 진 구체 적 인 코드 를 공유 하여 여러분 에 게 참고 하 시기 바 랍 니 다.구체 적 인 내용 은 다음 과 같 습 니 다.
1.마우스 가 아래로 미 끄 러 지고 사 이 드 바 가 따라 위로 이동 하 며 어느 위치 에 도 착 했 을 때 사 이 드 바 가 이동 을 멈 춥 니 다.마우스 위로,사 이 드 바 아래로-정지

2.마우스 가 한 위치 로 계속 내 려 가면'끝 으로 돌아 가기'몇 글자 가 나타 납 니 다.'끝 으로 돌아 가기'를 누 르 면 바로 끝 에 도착 합 니 다.

3,상단 위치 에 도달 효과

4.소스 코드

<!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;
    }

    /*    */
    .w {
      width: 980px;
      margin: 0 auto;
    }

    /*      */
    .head {
      height: 200px;
      background-color: teal;
    }

    /*        */
    .banner {
      height: 450px;
      background-color: red
    }

    /* sidebar     */
    .sidebar {
      position: absolute;
      top: 300px;
      right: 250px;
      display: inline-block;
      width: 40px;
      height: 80px;
      background-color: cyan;
      text-align: center;
    }

    /*     “    ”   */
    .sidebar span {
      display: none;
      font-size: 14px;
      cursor: pointer;
    }

    /*   div   */
    .zhuti {
      height: 300px;
      background-color: violet;
    }

    /*      */
    .footer {
      height: 700px;
      background-color: yellow;
    }
  </style>
</head>

<body>
  <div class="sidebar">  <br><br>
    <span id="returns">    </span>
  </div>
  <div class="head w">    </div>
  <div class="banner w">banner  </div>
  <div class="zhuti w">    </div>
  <div class="footer w">    </div>

  <script>
    // Js    
    var sidebar = document.querySelector('.sidebar')
    var banner = document.querySelector('.banner')
    var bannerTop = banner.offsetTop;

    //             
    var zhuti = document.querySelector('.zhuti');
    var span = document.querySelector('span');
    var zhutiTop = zhuti.offsetTop;
    // console.log(bannerTop) // 200 
    // banner.offestTop                      
    //                    
    var sidebarTop = sidebar.offsetTop - bannerTop;
    document.addEventListener('scroll', function () {
      // console.log(window.pageYOffset)
      if (window.pageYOffset >= bannerTop) {
        sidebar.style.position = 'fixed';
        sidebar.style.top = sidebarTop + 'px';
      } else {
        sidebar.style.position = 'absolute';
        sidebar.style.top = 300 + 'px';
      }

      //           ,  span   
      if (window.pageYOffset >= zhutiTop) {
        span.style.display = 'block';
      } else {
        span.style.display = 'none';
      }
    })
    //        js  
    function animation(obj, target, fn1) {
      // console.log(fn1);
      // fn       ,           
      //                
      clearInterval(obj.timer);
      obj.timer = setInterval(function () {
        //             
        //     
        var step = (target - obj.pageYOffset) / 10;
        step = step > 0 ? Math.ceil(step) : Math.floor(step);
        if (obj.pageYOffset == target) {
          clearInterval(obj.timer);
          //   fn1  ,  fn
          if (fn1) {
            fn1();
          }
        } else {
          //  30        obj.left
          window.scroll(0, obj.pageYOffset + step);
        }
      }, 30)
    }

    //               
    var returns = document.querySelector('#returns');
    returns.addEventListener('click', function () {
      // alert(111);
      // window.scroll(x,y)       
      // window.scroll(0,0);
      animation(window, 0)
    })
  </script>
</body>

</html>
5,좋아 하 다 기억 하 다 클릭,관심,소장 오,싫어 하 다 뿌리 지 마~
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기