이 글은 페이지 전환의 전환 애니메이션 효과를 구현하기 위해 주로 jQuery를 소개합니다. 이제 필요한 친구들이 참고할 수 있도록 공유합니다.
효과 AJAX 호출을 통한 매우 멋진 jQuery 및 CSS3 전환 페이지 전환 애니메이션 특수 효과 플러그인입니다. 이 페이지 전환 효과는 AJAX를 사용하여 링크 콘텐츠를 동적으로 로드합니다. 페이지가 로드되면 CSS3를 사용하여 매우 멋진 페이지 전환 애니메이션 효과를 만듭니다. pushState 메소드는 브라우저의 검색 기록을 관리하기 위해 사용됩니다. 필요한 친구들은
을 참조하여 직접 제작 과정을 소개할 수 있습니다.
HTML 구조
페이지 전환 효과의 HTML 구조는 페이지의 래핑 요소인 p를 사용합니다. .cd -cover-layer는 페이지 전환 시 마스크 레이어를 생성하는 데 사용되며, p.cd-loading-bar는 ajax 로딩 시 로딩 진행률 표시줄입니다.
<main> <p class="cd-index cd-main-content"> <p> <h1>Page Transition</h1> <!-- your content here --> </p> </p> </main> <p class="cd-cover-layer"></p> <!-- this is the cover layer --> <p class="cd-loading-bar"></p> <!-- this is the loading bar -->
CSS 스타일
이 페이지로 전환됩니다 body::before 및 body::after 의사 요소는 특수 효과에 사용되어 페이지 전환 프로세스 중에 페이지 콘텐츠를 덮는 두 개의 마스크 레이어를 만듭니다. 위치는 높이가 50vh이고 너비가 100%로 고정되어 있습니다. 기본적으로 CSS 변환 속성(translateY(-100%)/translateY(100%))을 사용하여 숨겨집니다. 사용자가 페이지를 전환하면 이러한 요소는 .page-is-changing 클래스를 6c04bd5ca3fcae76e30b72ad730ca86d 요소에 추가하여 뷰포트로 다시 이동됩니다. 아래 그림은 이 과정을 보여줍니다. #
body::after, body::before { /* these are the 2 half blocks which cover the content once the animation is triggered */ height: 50vh; width: 100%; position: fixed; left: 0; } body::before { top: 0; transform: translateY(-100%); } body::after { bottom: 0; transform: translateY(100%); } body.page-is-changing::after, body.page-is-changing::before { transform: translateY(0); }
페이지가 전환될 때 p.cd의 투명도를 변경하여 페이지 콘텐츠의 페이드 인 및 페이드 아웃 효과를 얻습니다. -커버 레이어. .cd-main-content 요소를 동일한 배경색으로 오버레이한 다음 6c04bd5ca3fcae76e30b72ad730ca86d에 .page-is-changing 클래스를 추가하면 투명도가 0에서 1로 변경됩니다. 로드 진행률 표시줄은 .cd-loading-bar::before 의사 요소를 사용하여 만들어집니다. 기본적으로 축소(scaleX(0))되고 변형 원본: 왼쪽 중앙입니다. 페이지 전환이 시작되면 scaleX(1)을 사용하여 원래 크기로 확대됩니다.
.cd-loading-bar { /* this is the loading bar - visible while switching from one page to the following one */ position: fixed; height: 2px; width: 90%; } .cd-loading-bar::before { /* this is the progress bar inside the loading bar */ position: absolute; left: 0; top: 0; height: 100%; width: 100%; transform: scaleX(0); transform-origin: left center; } .page-is-changing .cd-loading-bar::before { transform: scaleX(1); }
특수 효과의 부드러운 전환 효과는 CSS 전환을 사용하여 구현됩니다. 다양한 요소 애니메이션 시퀀스를 달성하기 위해 각 애니메이션 요소에 다양한 전환 지연이 추가됩니다.
JAVASCRIPT
$('main').on('click', '[data-type="page-transition"]', function(event){ event.preventDefault(); //detect which page has been selected var newPage = $(this).attr('href'); //if the page is not animating - trigger animation if( !isAnimating ) changePage(newPage, true); });
이 메서드는 페이지 전환 애니메이션을 트리거하고 loadNewContent() 메서드를 통해 새 콘텐츠를 로드합니다.
function changePage(url, bool) { isAnimating = true; // trigger page animation $('body').addClass('page-is-changing'); //... loadNewContent(url, bool); //... }새 콘텐츠가 로드되면 원본 61b85035edf2b42260fdb5632dc5728a 요소의 콘텐츠가 대체됩니다. .page-is-changing 클래스가 본문에서 제거되고 새로 로드된 콘텐츠가 window.history에 추가됩니다(pushState() 메서드 사용).
function loadNewContent(url, bool) { var newSectionName = 'cd-'+url.replace('.html', ''), section = $('<p class="cd-main-content '+newSectionName+'"></p>'); section.load(url+' .cd-main-content > *', function(event){ // load new content and replace <main> content with the new one $('main').html(section); //... $('body').removeClass('page-is-changing'); //... if(url != window.location){ //add the new page to the window.history window.history.pushState({path: url},'',url); } }); }사용자가 브라우저의 뒤로 버튼을 클릭할 때 동일한 페이지 전환 애니메이션 효과를 실행하려면 플러그를 -in popstate 이벤트를 수신하고 트리거될 때changePage() 함수를 실행합니다.
$(window).on('popstate', function() { var newPageArray = location.pathname.split('/'), //this is the url of the page to be loaded newPage = newPageArray[newPageArray.length - 1]; if( !isAnimating ) changePage(newPage); });위 내용은 모두의 학습에 도움이 되기를 바랍니다. PHP 중국어 웹사이트! 관련 권장사항:
jQuery 및 CSS3에서는 플로팅 효과가 있는 모방 꽃잎 네트 고정 상단 위치 탐색 메뉴를 구현합니다.
타임라인 효과를 구현하는 jQuery 플러그인 Timelinr 정보 # 🎜🎜#
위 내용은 jQuery는 전환 페이지 전환 애니메이션 효과를 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!