이 글은 페이지 전환의 전환 애니메이션 효과를 구현하기 위해 주로 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 클래스를
요소에 추가하여 뷰포트로 다시 이동됩니다. 아래 그림은 이 과정을 보여줍니다. #
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 요소를 동일한 배경색으로 오버레이한 다음
에 .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
The data-type="page-transition" 속성은 페이지 전환 이벤트를 트리거하기 위해 이 페이지 전환 효과의 링크에 사용됩니다. 플러그인이 사용자 클릭 이벤트를 감지하면 ChangePage() 메서드가 실행됩니다.
$('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);
//...
}
로그인 후 복사
새 콘텐츠가 로드되면 원본
요소의 콘텐츠가 대체됩니다. .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 슬라이딩 버튼 스위치 구현 방법
타임라인 효과를 구현하는 jQuery 플러그인 Timelinr 정보 # 🎜🎜#
위 내용은 jQuery는 전환 페이지 전환 애니메이션 효과를 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!