JavaScript - Page Transitions: Unterschied zwischen den Versionen
Aus Wikizone
| Zeile 3: | Zeile 3: | ||
== Siehe auch == | == Siehe auch == | ||
* [[AJAX - Content Loading]] | * [[AJAX - Content Loading]] | ||
| + | * [[Page Loader - Beispiele]] | ||
== Tools und Links == | == Tools und Links == | ||
Aktuelle Version vom 13. Juli 2017, 15:16 Uhr
Page Transitions, Inhalte via AJAX Laden, CSS und JavaScript Animations
Siehe auch[Bearbeiten]
Tools und Links[Bearbeiten]
- http://git.blivesta.com/animsition/
- http://designdrizzle.com/15-amazing-page-transitions-effects-tutorials-in-jquery-and-css3/
- https://webdesign.tutsplus.com/tutorials/how-to-create-an-ajax-driven-theme-for-processwire--cms-26579
- https://tympanus.net/Development/FullscreenLayoutPageTransitions/
- https://tympanus.net/codrops/2014/04/23/page-loading-effects/ -> vielseitig einsetzbar
Tutorials[Bearbeiten]
Überblick[Bearbeiten]
AJAX Page Loading[Bearbeiten]
- AJAX können Inhalte nachgeladen werden.
- Es können auch nur Teile einer Seite (z.B. ein Div) nachgeladen werden.
- Auch andere Datenformen (z.B. JSON) sind möglich. Es gibt auch entsprechende Frameworks
- Browser-History und URLs im Blick behalten. Seite soll auch komplett ladbar sein.
- Title Tag auslesen und ersetzen. Oder den Titel in den Link schreiben und hier holen.
Strategiebeispiel[Bearbeiten]
- 2 verschachtelte Container
- Der äußere beinhaltet alle Inhalte. An den inneren werden die neuen Inhalte angehängt (append)
- Page Transition wird ausgeführt und der innere Container mit den alten Inhalten ausgeblendet.
- Evtl. Browser History aktualisieren und URL
- Evtl. Seitenskripte neu initialisieren
Inhalte dynamisch nachladen mit AJAX[Bearbeiten]
Seitenrequest auslösen[Bearbeiten]
jQuery
$(function() {
var href;
var title;
$('body').on('click','a.ajax-link',function(e) { // nav link clicked
href = $(this).attr("href");
title = $(this).attr("name");
// load content via AJAX
loadContent(href);
// prevent click and reload
e.preventDefault();
});
function loadContent(url){ // Load content
// variable for page data
$pageData = '';
// send Ajax request
$.ajax({
type: "POST",
url: url,
data: { ajax: true },
success: function(data,status){
$pageData = data;
}
}).done(function(){ // when finished and successful
// construct new content
$pageData = '<div class="content no-opacity ajax">' + $pageData + '</div>';
// add content to page
$('.content-container').append($pageData);
// remove old content
$('.content.current-content').remove();
// show new content and clean up classes
$(this).removeClass('no-opacity').removeClass('ajax').addClass('current-content');
}); // end of ajax().done()
} // end of loadContent()
});