Maison > interface Web > js tutoriel > Réalisez un bel effet d'animation de transition de page basé sur javascript avec les compétences de download_javascript du code source

Réalisez un bel effet d'animation de transition de page basé sur javascript avec les compétences de download_javascript du code source

WBOY
Libérer: 2016-05-16 15:35:03
original
1747 Les gens l'ont consulté

En cliquant sur le menu sur le côté gauche de la page, la page correspondante sera chargée avec une animation de filtre coulissant et un effet de barre de progression. Bien entendu, le chargement de la page est piloté par Ajax, et l'ensemble du processus de transition de chargement est très fluide et offre une très bonne expérience utilisateur.

HTML

Dans la structure HTML, .cd-main contient le contenu principal de la page, .cd-side-navigation contient la barre de navigation latérale et #cd-loading-bar est utilisé pour l'animation de la barre de progression.

<nav class="cd-side-navigation"> 
  <ul> 
    <li> 
      <a href="index.html" class="selected" data-menu="index"> 
        <svg><!-- svg content here --></svg> 
        Intro 
      </a> 
    </li> 
    <li> 
      <!-- ... --> 
    </li> 
    <!-- other list items here --> 
  </ul> 
</nav> <!-- .cd-dashboard --> 
<main class="cd-main"> 
  <section class="cd-section index visible"> 
    <header> 
      <div class="cd-title"> 
        <h2>Animated Page Transition #2</h2> 
        <span>Some text here</span> 
      </div> 
      <a href="#index-content" class="cd-scroll">Scroll Down</a> 
    </header> 
    <div class="cd-content" id="index-content"> 
      <!-- content here --> 
    </div> <!-- .cd-content --> 
  </section> <!-- .cd-section --> 
</main> <!-- .cd-main --> 
<div id="cd-loading-bar" data-scale="1" class="index"></div> <!-- lateral loading bar --> 

Copier après la connexion

CSS

Nous avons corrigé .cd-side-navigation sur le côté gauche de la page et défini sa hauteur à 100%, de sorte que le menu de navigation de gauche occupe toujours la barre latérale gauche lorsque le contenu principal à droite défile, la gauche. le menu de navigation ne bouge pas.

.cd-side-navigation { 
 position: fixed; 
 z-index: 3; 
 top: 0; 
 left: 0; 
 height: 100vh; 
 width: 94px; 
 overflow: hidden; 
} 
.cd-side-navigation ul { 
 height: 100%; 
 overflow-y: auto; 
} 
.cd-side-navigation::before { 
 /* background color of the side navigation */ 
 content: ''; 
 position: absolute; 
 top: 0; 
 left: 0; 
 height: 100%; 
 width: calc(100% - 4px); 
 background-color: #131519; 
} 
.cd-side-navigation li { 
 width: calc(100% - 4px); 
} 
.cd-side-navigation a { 
 display: block; 
 position: relative; 
} 
.cd-side-navigation a::after { 
 /* 4px line to the right of the item - visible on hover */ 
 content: ''; 
 position: absolute; 
 top: 0; 
 right: -4px; 
 height: 100%; 
 width: 4px; 
 background-color: #83b0b9; 
 opacity: 0; 
} 
.no-touch .cd-side-navigation a:hover::after { 
 opacity: 1; 
}
Copier après la connexion

JavaScript

Lorsque l'on clique sur le menu de gauche, la fonction triggerAnimation() est appelée. Cette fonction déclenchera la fonction d'animation de la barre de progression du chargement chargementBarAnimation(), puis chargera la fonction de contenu de la page : loadNewContent().

function loadingBarAnimation() { 
  var scaleMax = loadingBar.data('scale'); 
  if( scaleY + 1 < scaleMax) { 
    newScaleValue = scaleY + 1; 
  } 
  // ... 
   
  loadingBar.velocity({ 
    scaleY: newScaleValue 
  }, 100, loadingBarAnimation); 
}
Copier après la connexion

Lorsqu'une nouvelle page est sélectionnée, un nouvel élément .cd-section sera créé et inséré dans le DOM, puis chargera() le nouveau contenu de l'URL.

function loadNewContent(newSection) { 
  var section = $('<section class="cd-section overflow-hidden '+newSection+'"></section>').appendTo(mainContent); 
   
  //load the new content from the proper html file 
  section.load(newSection+'.html .cd-section > *', function(event){ 
     
    loadingBar.velocity({ 
      scaleY: scaleMax //this is the scaleY value to cover the entire window height (100% loaded) 
    }, 400, function(){ 
       
      section.addClass('visible'); 
 
      var url = newSection+'.html'; 
 
      if(url!=window.location){ 
        //add the new page to the window.history 
        window.history.pushState({path: url},'',url); 
      } 
 
      // ... 
    }); 
  }); 
}
Copier après la connexion

Si vous souhaitez revenir à l'historique de navigation de la page précédente via une page chargée de manière asynchrone, vous pouvez cliquer sur Retour sur le navigateur. Le retour à la page précédente a également un effet d'animation de transition.

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal