웹 프론트엔드 JS 튜토리얼 JS를 사용하여 페이지 번호 교체에 사용할 수 있는 플라잉 페이지 특수 효과를 구현하는 방법

JS를 사용하여 페이지 번호 교체에 사용할 수 있는 플라잉 페이지 특수 효과를 구현하는 방법

May 28, 2018 pm 02:57 PM
javascript 페이지 번호

이번에는 페이지 번호 교체에 사용할 수 있는 플라잉 페이지 특수 효과를 구현하기 위해 JS를 사용하는 방법을 보여드리겠습니다. 페이지 번호 교체에 사용할 수 있습니다. 다음은 실제 사례입니다. 살펴보겠습니다. 이 효과는 자체적으로 캡슐화된 모션 함수를 사용합니다. 이 효과의 영리한 점은 배열을 사용하여 처음에 각 li의 위치 정보를 저장한 다음 버튼(페이지 번호)을 클릭하면 너비가 변경된다는 것입니다. 이동이 발생하고 하나씩 사라지면 li의 높이 위치와 투명도가 변경되며, 사라짐이 완료된 후 페이지 번호와 일치하여 페이지 효과를 얻을 수 있습니다. 숫자 교체

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title> JS飞入效果</title>
  <link rel="stylesheet" href="stylesheets/base.css" rel="external nofollow" >
  <style>
    body{
      background:#000;
    }
    .header{
      width: 100%;
      height: 40px;
      background:#fff;
      font:bold 30px/40px '微软雅黑';
      text-align:center;
    }
    input{
      background:#fff;
      margin-top:5px;
      width: 50px;
      height: 20px;
      font:bold 12px/20px '微软雅黑';
    }
    ul{
      width: 360px;
      height: 360px;
      margin:50px auto;
    }
    ul li{
      width: 100px;
      height: 100px;
      background:skyblue;
      float:left;
      margin:5px;
    }
  </style>
  <script src="move.js"></script>
  <script>
    window.onload=function(){
      var oBtn=document.getElementById('btn1');
      var oUl=document.getElementsByTagName('ul')[0];
      var aLi=oUl.children;
      //用数组来存放没个li的位置
      var arr=[];
      //存位置
      for(var i=0;i<aLi.length;i++) {
        arr[i] = {
        left:aLi[i].offsetLeft,
        top:aLi[i].offsetTop
        };
      }
      //给目前的li定位
      for(var i=0;i<arr.length;i++){
        aLi[i].style.position='absolute';
        aLi[i].style.left=arr[i].left+'px';
        aLi[i].style.top=arr[i].top+'px';
        aLi[i].style.margin=0;
      }
      //当点击的时候开定时器,让li一个一个的走
      var iNow=0;
      var timer=null;
      var bReady=false;
      oBtn.onclick=function(){
        if(bReady){return;}
        bReady=true;
        timer=setInterval(function(){
          move(aLi[iNow],{left:0,top:0,height:0,width:0,opacity:0},{'duration':200,'complete':function(){
            if(iNow==arr.length-1){
              clearInterval(timer);
              back();
              bReady=false;
            }
            iNow++;
          }});
        },220);
      };
      function back(){
        timer=setInterval(function(){
          iNow--;
          move(aLi[iNow],{left:arr[iNow].left,top:arr[iNow].top,height:100,width:100,opacity:1},{'duration':200,'complete':function(){
            if(iNow==0){
              clearInterval(timer);
            }
          }});
        },220);
      }
    };
  </script>
</head>
<body>
  <p class="header">飞页效果</p>
  <input type="button" value="走你" id="btn1">
  <ul>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
  </ul>
</body>
</html>
로그인 후 복사

모션 기능 move.js:

/**
 * Created by Jason on 2016/11/7.
 */
function getStyle(obj,sName){
  return (obj.currentStyle || getComputedStyle(obj,false))[sName];
}
function move(obj,json,options){
  var options=options || {};
  var duration=options.duration || 1000;
  var easing=options.easing || 'linear';
  var start={};
  var dis={};
  for(name in json){
    start[name]=parseFloat(getStyle(obj,name));
    dis[name]=json[name]-start[name];
  }
  //start {width:50,} dis {width:150}
  //console.log(start,dis);
  var count=Math.floor(duration/30);
  var n=0;
  clearInterval(obj.timer);
  obj.timer=setInterval(function(){
    n++;
    for(name in json){
      switch (easing){
        case 'linear':
          var a=n/count;
          var cur=start[name]+dis[name]*a;
          break;
        case 'ease-in':
          var a=n/count;
          var cur=start[name]+dis[name]*a*a*a;
          break;
        case 'ease-out':
          var a=1-n/count;
          var cur=start[name]+dis[name]*(1-a*a*a);
          break;
      }
      if(name=='opacity'){
        obj.style.opacity=cur;
      }else{
        obj.style[name]=cur+'px';
      }
    }
    if(n==count){
      clearInterval(obj.timer);
      options.complete && options.complete();
    }
  },30);
}
로그인 후 복사

작동 효과는 다음과 같습니다.

이 기사의 사례를 읽으신 후 방법을 마스터하셨다고 믿습니다. 기타 관련 기사는 PHP 중국어 웹사이트에 있습니다!

추천 자료:

Vue를 사용하여 AdminLTE 템플릿을 통합하는 방법

vue-cli를 사용하여 프로젝트를 빠르게 빌드하는 방법

위 내용은 JS를 사용하여 페이지 번호 교체에 사용할 수 있는 플라잉 페이지 특수 효과를 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

모든 페이지의 단어 페이지 번호가 동일한 이유는 무엇입니까? 모든 페이지에서 단어 페이지 번호가 동일하면 어떻게 해야 합니까? 모든 페이지의 단어 페이지 번호가 동일한 이유는 무엇입니까? 모든 페이지에서 단어 페이지 번호가 동일하면 어떻게 해야 합니까? Mar 13, 2024 pm 09:34 PM

페이지 번호라는 단어가 모든 페이지에서 동일하다면 무슨 문제가 있나요? 우리 모두는 일상 업무에서 문서 편집 소프트웨어를 사용하지만, 페이지 번호 기능을 사용할 때 설정한 각 페이지의 페이지 번호가 동일하다는 것을 알게 되는 경우가 많습니다. 단어 페이지 번호는 모든 페이지에서 동일합니까? 모든 페이지에서 단어 페이지 번호가 동일하면 어떻게 해야 합니까? 1. Word를 열고 상단 메뉴 표시줄에서 삽입 옵션을 클릭합니다. 2. 그런 다음 페이지 번호를 클릭하고 페이지 번호 형식을 설정하도록 선택합니다. 3. 그런 다음 열리는 창에서 "인코딩" 형식을 선택합니다. 4. 그런 다음 "시작 페이지 번호" 옵션을 확인하고 1을 입력한 후 "확인"을 클릭하세요.

왼쪽과 오른쪽의 홀수 페이지와 짝수 페이지가 다르도록 Word 페이지 번호를 설정하는 방법은 무엇입니까? 왼쪽과 오른쪽의 홀수 페이지와 짝수 페이지가 다르도록 Word 페이지 번호를 설정하는 방법은 무엇입니까? Mar 13, 2024 pm 06:13 PM

문서를 더욱 개인화되게 보이도록 하려면 홀수 페이지와 짝수 페이지에 대해 Word 페이지 번호를 다르게 설정할 수 있습니다. 그러면 Word의 홀수 페이지와 짝수 페이지에 대해 왼쪽 및 오른쪽 페이지 번호를 다르게 설정하는 방법은 무엇입니까? 아래의 자세한 튜토리얼을 살펴보겠습니다. 작동 방법을 모르신다면 계속 읽어보세요. 단어 설정 방법: 1. 먼저 "삽입"을 클릭합니다. 2. 그런 다음 "바닥글"을 클릭합니다. 3. 그런 다음 '바닥글 편집'을 클릭하세요. 4. 그런 다음 "홀수 페이지와 짝수 페이지가 다릅니다"를 클릭하세요. 5. 홀수 페이지의 바닥글을 찾아 "페이지 번호"를 클릭하세요. 6. 그런 다음 오른쪽에서 페이지 스타일을 선택합니다.

PPT 페이지 번호는 어떻게 4페이지에서 1페이지로 시작하나요? PPT 페이지 번호 사용자 정의 튜토리얼 PPT 페이지 번호는 어떻게 4페이지에서 1페이지로 시작하나요? PPT 페이지 번호 사용자 정의 튜토리얼 Mar 13, 2024 pm 05:52 PM

PPT에 페이지가 많은 경우 PPT에 페이지 번호를 추가하여 좀 더 체계적으로 보이도록 할 수 있습니다. 그렇다면 PPT 페이지 번호를 사용자 정의할 수 있나요? PPT의 특정 페이지부터 페이지 번호를 설정할 수 있나요? 특정 작업을 모르는 경우 아래 튜토리얼 방법을 살펴볼 수 있습니다. 네 번째 페이지부터 시작하도록 ppt 번호 매기기를 설정하는 방법: 1. "삽입" 메뉴에서 "슬라이드 번호 매기기"를 클릭합니다. 머리글과 바닥글 설정 페이지에 들어가면 기본적으로 슬라이드 번호가 체크되어 있지 않은 것을 볼 수 있습니다. 2. "슬라이드 번호"를 클릭하여 체크한 후, "전체 적용"을 클릭하면 번호 삽입이 완료됩니다. 3. 아래 그림에서 삽입된 내용을 볼 수 있습니다.

WebSocket과 JavaScript를 사용하여 온라인 음성 인식 시스템을 구현하는 방법 WebSocket과 JavaScript를 사용하여 온라인 음성 인식 시스템을 구현하는 방법 Dec 17, 2023 pm 02:54 PM

WebSocket 및 JavaScript를 사용하여 온라인 음성 인식 시스템을 구현하는 방법 소개: 지속적인 기술 개발로 음성 인식 기술은 인공 지능 분야의 중요한 부분이 되었습니다. WebSocket과 JavaScript를 기반으로 한 온라인 음성 인식 시스템은 낮은 대기 시간, 실시간, 크로스 플랫폼이라는 특징을 갖고 있으며 널리 사용되는 솔루션이 되었습니다. 이 기사에서는 WebSocket과 JavaScript를 사용하여 온라인 음성 인식 시스템을 구현하는 방법을 소개합니다.

단어 페이지 번호는 왜 항상 이전 페이지와 같나요? 단어 페이지 번호는 왜 항상 이전 페이지와 같나요? Mar 13, 2024 pm 06:28 PM

단어를 편집할 때 단어에 페이지 번호를 추가하여 더 체계적으로 보이도록 할 수 있습니다. 그런데 페이지 번호를 설정한 후 문서의 각 페이지의 페이지 번호가 동일한 것을 발견했습니다. 이 문제는 흔히 발생하는 일이므로 편집기를 통해 자세한 해결 방법을 살펴보겠습니다. 모든 Word 페이지 번호가 정확히 동일합니까? 1. Word의 "시작" 인터페이스에서 "페이지 번호"를 클릭하고 드롭다운 메뉴 표시줄에서 "페이지 상단"을 클릭한 다음 일반 숫자 "2"를 선택합니다. 2. 그런 다음 페이지에서 "페이지 번호"를 클릭하고 드롭다운 메뉴 표시줄에서 "페이지 번호 형식 설정"을 클릭하세요.

WebSocket 및 JavaScript: 실시간 모니터링 시스템 구현을 위한 핵심 기술 WebSocket 및 JavaScript: 실시간 모니터링 시스템 구현을 위한 핵심 기술 Dec 17, 2023 pm 05:30 PM

WebSocket과 JavaScript: 실시간 모니터링 시스템 구현을 위한 핵심 기술 서론: 인터넷 기술의 급속한 발전과 함께 실시간 모니터링 시스템이 다양한 분야에서 널리 활용되고 있다. 실시간 모니터링을 구현하는 핵심 기술 중 하나는 WebSocket과 JavaScript의 조합입니다. 이 기사에서는 실시간 모니터링 시스템에서 WebSocket 및 JavaScript의 적용을 소개하고 코드 예제를 제공하며 구현 원칙을 자세히 설명합니다. 1. 웹소켓 기술

JavaScript 및 WebSocket을 사용하여 실시간 온라인 주문 시스템을 구현하는 방법 JavaScript 및 WebSocket을 사용하여 실시간 온라인 주문 시스템을 구현하는 방법 Dec 17, 2023 pm 12:09 PM

JavaScript 및 WebSocket을 사용하여 실시간 온라인 주문 시스템을 구현하는 방법 소개: 인터넷의 대중화와 기술의 발전으로 점점 더 많은 레스토랑에서 온라인 주문 서비스를 제공하기 시작했습니다. 실시간 온라인 주문 시스템을 구현하기 위해 JavaScript 및 WebSocket 기술을 사용할 수 있습니다. WebSocket은 TCP 프로토콜을 기반으로 하는 전이중 통신 프로토콜로 클라이언트와 서버 간의 실시간 양방향 통신을 실현할 수 있습니다. 실시간 온라인 주문 시스템에서는 사용자가 요리를 선택하고 주문을 하면

WebSocket과 JavaScript를 사용하여 온라인 예약 시스템을 구현하는 방법 WebSocket과 JavaScript를 사용하여 온라인 예약 시스템을 구현하는 방법 Dec 17, 2023 am 09:39 AM

WebSocket과 JavaScript를 사용하여 온라인 예약 시스템을 구현하는 방법 오늘날의 디지털 시대에는 점점 더 많은 기업과 서비스에서 온라인 예약 기능을 제공해야 합니다. 효율적인 실시간 온라인 예약 시스템을 구현하는 것이 중요합니다. 이 기사에서는 WebSocket과 JavaScript를 사용하여 온라인 예약 시스템을 구현하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 1. WebSocket이란 무엇입니까? WebSocket은 단일 TCP 연결의 전이중 방식입니다.

See all articles