この記事では主に、ページ切り替えのトランジションアニメーション効果を実現するための jQuery を紹介します。これは、必要な友達に参照してもらえるように共有します。これは、AJAX スイッチを介した非常にクールな jQuery と CSS3 の呼び出しです。ページ遷移アニメーション特殊効果プラグイン。このページ切り替えエフェクトは、AJAX を使用してリンク コンテンツを動的に読み込みます。ページが読み込まれるときに、CSS3 を使用して非常にクールなページ遷移アニメーション効果が作成されます。 PushState メソッドは、ブラウザの閲覧履歴を管理するためにプラグインで使用されます。必要な友達はそれを参照してください
制作プロセスを直接紹介します。
HTML構造このページ切り替え特殊効果のHTML構造は、ページのラッピング要素として
<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 -->
このページ切り替え効果は、body::before と body::after 擬似要素を使用して、ページ切り替えプロセス中にページ コンテンツをカバーする 2 つのマスク レイヤーを作成します。それらの位置は固定されており、高さは 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-cover-layer の。 .cd-main-content 要素を同じ背景色でオーバーレイし、
が .page-is-changing クラスで追加されるときに透明度を 0 から 1 に変更します。 読み込み進行状況バーは、.cd-loading-bar::before 疑似要素を使用して作成されます。デフォルトでは、縮小 (scaleX(0)) され、transform-origin: 左中央になります。ページの切り替えが開始されると、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
このページ切り替え効果では、ページ切り替えイベントをトリガーするためにリンクで 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); //... }
新しいコンテンツがロードされると、元の
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); } }); }
ユーザーがブラウザの戻るボタンをクリックしたときに同じページ切り替えアニメーション効果をトリガーするために、プラグインは 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 中国語 Web サイトをご覧ください。
関連する推奨事項:
jQuery と CSS3 は、フローティング効果を備えた模造花びらネットの固定上部位置ナビゲーション メニューを実装します jQuery スライド ボタン スイッチを実装する方法 jQuery プラグインについて タイムライン効果を実装する Timelinr以上がjQueryでページ遷移アニメーション効果の切り替えを実装の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。