JavaScript - Page Transitions: Unterschied zwischen den Versionen
Aus Wikizone
(Die Seite wurde neu angelegt: „== Tools == == Tutorials == == Quickstart == == Inhalte dynamisch nachladen mit AJAX ==“) |
|||
| (13 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
| − | == Tools == | + | Page Transitions, Inhalte via AJAX Laden, CSS und JavaScript Animations |
| + | |||
| + | == Siehe auch == | ||
| + | * [[AJAX - Content Loading]] | ||
| + | * [[Page Loader - Beispiele]] | ||
| + | |||
| + | == Tools und Links == | ||
| + | * 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 == | == Tutorials == | ||
| − | == | + | == Überblick == |
| + | |||
| + | === AJAX Page Loading === | ||
| + | * 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 ==== | ||
| + | * 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 == | == Inhalte dynamisch nachladen mit AJAX == | ||
| + | === Seitenrequest auslösen === | ||
| + | '''jQuery''' | ||
| + | <syntaxhighlight lang="php"> | ||
| + | $(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() | ||
| + | }); | ||
| + | </syntaxhighlight> | ||
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()
});