Seite 1 Grundlagen digitaler Gestaltung | Niklas Teich Medieninformatik & Gestaltung
Seite 1Grundlagen digitaler Gestaltung | Niklas Teich Medieninformatik & Gestaltung
Seite 2Grundlagen digitaler Gestaltung | Niklas Teich Medieninformatik & Gestaltung
Strukturierung
... Was ist eigentlich jQuery
... Merkmale
... Einführung
... Selektoren
... Effekte: Grundlagen
... Callback Funktionen
... Events
... HTML Manipulationen
... AJAX
... jQuery UI
... jQuery Mobile
... Links
Seite 3Grundlagen digitaler Gestaltung | Niklas Teich Medieninformatik & Gestaltung
Was ist eigentlich jQuery?
Seite 4Grundlagen digitaler Gestaltung | Niklas Teich Medieninformatik & Gestaltung
jQuery ...
...isteinekostenloseundamhäufigstgenutzteJavaScriptKlassenbibliothek ... beinhaltet Methoden der Navigation und DOM Manipulation ... wurde von John Resig 2006 erfunden ...wirdseit2008offiziellua.vonNokia,AppleundMicrosoftProduktenunterstützt ...istdieamhäufigsteverwendetsteJavaScriptBibliothek ...wirdinallengängigenBrowsernunterstützt
2.0+ 6+ 3+ 10.6+ 8+
Seite 5Grundlagen digitaler Gestaltung | Niklas Teich Medieninformatik & Gestaltung
Merkmale
Seite 6Grundlagen digitaler Gestaltung | Niklas Teich Medieninformatik & Gestaltung
jQuery beinhaltet ...
... eine Elementselektion im DOM ... DOM Manipulationsmöglichkeiten ... ein Event-System ... Effekte & Animationen ...AJAXUnterstützung ...PlugIns ... eine unglaublich detaillierte Dokumentation ... nur coole Sachen
Seite 7Grundlagen digitaler Gestaltung | Niklas Teich Medieninformatik & Gestaltung
Einführung
Seite 8Grundlagen digitaler Gestaltung | Niklas Teich Medieninformatik & Gestaltung
Bibliothek
...esgibt2verschiedeneVersionenderBibliothek(komprimiert/unkomprimiert) ...entwederdieDateiselbstladen,bereitstellenundverlinken ...odernureinenVerweisnutzen(dieBibliothekliegtz.B.beijQueryselbstoderauch beidenGoogleCodeLibraries)
Vorteil beim direkten Verweis auf einen anderen Online-Standort der Datei:
...hoheWahrscheinlichkeit,dassjQueryBibliothekbereitsimCachedesUsersliegt
Seite 9Grundlagen digitaler Gestaltung | Niklas Teich Medieninformatik & Gestaltung
Einbindung im <head> ...
...einerkomprimiertenjQueryBibliothekaufdemeigenenWebserver
<script type=“text/javascript“ src=“jquery.min.js“></script>
...einerkomprimiertenjQueryBibliothekaufdemGoogleLibraryServer
<script type=“text/javascript“ src=“http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js“></script>
Seite 10Grundlagen digitaler Gestaltung | Niklas Teich Medieninformatik & Gestaltung
Wo rein muss der Code
...wievonJavaScriptgewohnt,gehörtauchjQueryCodeineinScript-Tag
<script type=“text/javascript“>
// Hier kommt unser jQuery Code rein </script>
Seite 11Grundlagen digitaler Gestaltung | Niklas Teich Medieninformatik & Gestaltung
Script ausführen
...wirmöchtennun,dassbeimfertiggeladenemDOMunserjQueryScriptausgeführt wird.DafürbenutzenwirdieHauseigene‚readyevent‘Funktion
<script type=“text/javascript“>
$(document).ready(function(){ // Hier folgt unser eigentlicher Code
}); </script>
Seite 12Grundlagen digitaler Gestaltung | Niklas Teich Medieninformatik & Gestaltung
Standard-Syntax
... jQuery erfasst HTML Elemente und führt auf diese „actions“ aus
$(selector).action()
jQueryStart-definierenElement das angesteuert wird
Methode/Event,die/dasaufdenHTMLBereichangewendetwird
Seite 13Grundlagen digitaler Gestaltung | Niklas Teich Medieninformatik & Gestaltung
Selektoren
Seite 14Grundlagen digitaler Gestaltung | Niklas Teich Medieninformatik & Gestaltung
Element Selektoren
...selektiertalleParagraphenimDokument $(“p“)
...selektiertalleParagraphenmitderKlasseMIGimDokument $(“p.MIG“)
... selektiert alle ersten <li> Elemtente jeder <ul> $(“ul li:first“)
... selektiert alle Elemente mit id=“wurststalat“ $(“#wurstsalat“)
...selektiertalleElementederKlassewurst $(“.wurst“)
Seite 15Grundlagen digitaler Gestaltung | Niklas Teich Medieninformatik & Gestaltung
Attribut-Selektoren
...mitXPathExpressionskönnenwirmehrereElementemitgegebendenAttributen selektieren und ansteuern
... selektiert alle Elemente mit „href“ als Attribut $(“[href]“)
... selektiert alle Elemente mit „href“ als Attribut mit dem Wert „#“ $(“[href=‘#‘]“)
... selektiert alle Elemente mit „href“ als Attribut die mit „.png“ enden $(“[href$=‘.jpg‘]“)
...selektiertalle<input..>mitdemvalue=“Krautsalat“ $(‘input[value=“Krautsalat“]‘)
Seite 16Grundlagen digitaler Gestaltung | Niklas Teich Medieninformatik & Gestaltung
Effekte: Grundlagen
Seite 17Grundlagen digitaler Gestaltung | Niklas Teich Medieninformatik & Gestaltung
hide()
... lässt das gewünschte Element verschwinden.
$(selector).hide(speed,callback)
Element,welcheswirgerne ansteuern möchten
die Funktion hide
gibtdieGeschwindigkeitderhideFunktionan,hiermöglich:“slow“,“fast“,“normal“,oderMillisekunden.
Funktion,dienachderAusführungvonhide()durchgeführt werden soll
Seite 18Grundlagen digitaler Gestaltung | Niklas Teich Medieninformatik & Gestaltung
Praxis-Beispiel - hide()
...aufKnopfdruckverschwindenalleTexte,diein<p>gesetztwurden.
$(document).ready(function(){
$(“button“).click(function(){ $(“p“).hide(); }); });
Hinweis - nicht vergessen die vor der function geöffneten Klammernachdieserauchwiederzuschließen!
(Online-Beispiel )
Seite 19Grundlagen digitaler Gestaltung | Niklas Teich Medieninformatik & Gestaltung
show()
... lässt das gewünschte Element erscheinen.
$(selector).show(speed,callback)
Element,welcheswirgerne ansteuern möchten
die Funktion show
gibtdieGeschwindigkeitdershowFunktionan,hiermöglich:“slow“,“fast“,“normal“,oderMillisekunden.Analogzuhide
Funktion,dienachderAusführungvonshow()durchgeführt werden soll
Seite 20Grundlagen digitaler Gestaltung | Niklas Teich Medieninformatik & Gestaltung
Praxis-Beispiel - show()
...aufKnopfdruckerscheinteinText,dervorhernichtzusehenwar
$(document).ready(function(){
$(“button“).click(function(){ $(“p“).show(); }); });
(Online-Beispiel )
Hinweis-imBeispielversteckteichdenTextganzeinfach über den style „display: none“
Seite 21Grundlagen digitaler Gestaltung | Niklas Teich Medieninformatik & Gestaltung
toggle()
...setztdasElementinAbhängigkeitzueinanderaufshow/hide
$(selector).toggle(speed,callback)
Element,welcheswirgerne ansteuern möchten
die Funktion toggle
gibtdieGeschwindigkeitdertoggleFunktionan,hiermöglich:“slow“,“fast“,“normal“,oderMillisekunden.Analogzuhide/show
Funktion,dienachderAusführungvontoggle()durchgeführt werden soll
Seite 22Grundlagen digitaler Gestaltung | Niklas Teich Medieninformatik & Gestaltung
Praxis-Beispiel - toggle()
...aufKnopfdruckverschwindenalleTexte,diein<p>gesetztwurden,underscheinen bei erneutem Druck wieder
$(document).ready(function(){
$(“button“).click(function(){ $(“p“).toggle(“slow“); }); });
(Online-Beispiel )
Seite 23Grundlagen digitaler Gestaltung | Niklas Teich Medieninformatik & Gestaltung
Praxis-Beispiel - CSS Selektor
...einKlickaufdenKnopfmitderidgroßlässtdieSchriftgrößeauf40Pxwachsen,ein KlickaufdenKnopfmitderidkleinlässtsieauf12Pxschrumpfen.
$(document).ready(function(){ $(“#groß“).click(function(){ $(“p“).css(“font-size“,“40px“); }); $(“#klein“).click(function(){ $(“p“).css(“font-size“,“12px“); }); });
(Online-Beispiel )
Hinweis-mehrereCSSEigenschaftenkönnensogesetztwerden: $(“p“).css({„font-size“:“40px“,“background-color“:“#123456“});
Seite 24Grundlagen digitaler Gestaltung | Niklas Teich Medieninformatik & Gestaltung
Praxis-Beispiel - slideToggle()
...beimKlickaufunserenText<p>..mitderid=“menu“öffnet/schließtsichder Container „container“ mit einem slide-Effekt.
$(document).ready(function(){ $(“p.menu).click(function(){ $(“#container“).slideToggle(“slow“); }); });
(Online-Beispiel )
Seite 25Grundlagen digitaler Gestaltung | Niklas Teich Medieninformatik & Gestaltung
fadeTo()
... ändert die Deckkraft eines Elements
$(selector).fadeTo(speed,opacity,callback)
Element,welcheswirgerne ansteuern möchten
die Funktion fadeTogibtdieGeschwindigkeitdertoggleFunktionan,hiermöglich:“slow“,“fast“,“normal“,oderMillisekunden.Analogzuhide/show
verringertdieDeckkraftbiszudemangebenenenWert(zwischen0und1,wiez.B.0.1,0.25)
Funktion,dienachderAusführungvonfadeTo()durchgeführt werden soll
Seite 26Grundlagen digitaler Gestaltung | Niklas Teich Medieninformatik & Gestaltung
Praxis-Beispiel - fadeTo()
...BeimMouseoverüberdieBoxverschwindetdiese.Umsiewiedererscheinenzu lassen-einfachdenCurserüberdenTextmitderid=“hell“halten.
$(document).ready(function(){ $(“#box“).hover(function(){ $(“#box“).fadeTo(“normal“,0.15); }); $(“#hell“).hover(function(){ $(“#box“).fadeTo(“fast“,1); }); });
(Online-Beispiel )
Seite 27Grundlagen digitaler Gestaltung | Niklas Teich Medieninformatik & Gestaltung
Übersicht der zur Verfügung stehenden Effekte
...animate() ...slideDown() ...clearQueue() ...slideToggle() ...delay() ...slideUp() ...dequeue() ...stop() ...fadeIn() ...toggle() ...fadeOut() ...hide() ...fadeTo() ...queue() ...fadeToggle() ...show() ...jQuery.fx.interval ...jQuery.fx.off
Seite 28Grundlagen digitaler Gestaltung | Niklas Teich Medieninformatik & Gestaltung
Callback Funktionen
Seite 29Grundlagen digitaler Gestaltung | Niklas Teich Medieninformatik & Gestaltung
Was ist ‚Callback‘?
...EineCallback-Funktionwirderstausgeführt,nachdemdieaktuellevollständigdurch- geführt wurde. ...sokannmansichsichersein,dasserstspezielleFunktionendurchgeführtwerden, nachdem bestimmte durchgelaufen sind.
Seite 30Grundlagen digitaler Gestaltung | Niklas Teich Medieninformatik & Gestaltung
Callback-Beispiel
...aufKnopfdruckerscheinteinText,dervorhernichtzusehenwar
$(document).ready(function(){ $(“#start“).click(function(){ $(“p“).hide(1000,function(){ $(“#text“).fadeTo(“slow“,0.3,function(){ $(“h1“).fadeTo(“slow“,0.2,function(){ $(“#start“).fadeTo(“slow“,0.1); }); }); }); }); });
(Online-Beispiel )
Seite 31Grundlagen digitaler Gestaltung | Niklas Teich Medieninformatik & Gestaltung
Events
Seite 32Grundlagen digitaler Gestaltung | Niklas Teich Medieninformatik & Gestaltung
Was ist sind genau ‚Events‘?
...EventssindMethoden,diebeiverschiedenenInteraktionendesUsersreagierenund unterschiedlichste Sachen auslösen können
Seite 33Grundlagen digitaler Gestaltung | Niklas Teich Medieninformatik & Gestaltung
kurze Event-Beispiele
Seite 34Grundlagen digitaler Gestaltung | Niklas Teich Medieninformatik & Gestaltung
.ready()
...kennenwirausderbereitsgezeigtenHauptmethode ...istdemJavaScript„load“ähnlich,jedochbeziehtsichdas.ready()nuraufdenvoll- ständiggeladenemDOMundnichtaufDatenwiez.B.vollständiggeladenenBildern, wie es bei „load“ der Fall ist ...dareadynachdemvollständigemLadendesDOMausgeführtwird,bietetsichready amhäufigstensfürdiePlatzierungdesjQueryCodesan.
Seite 35Grundlagen digitaler Gestaltung | Niklas Teich Medieninformatik & Gestaltung
.click()
...kennenwirausdenmeistenBeispielen ...reagiertbeieinemKlickaufdasbezogeneElement ...isteinShortcutfür.bind(“click“,handler)
Seite 36Grundlagen digitaler Gestaltung | Niklas Teich Medieninformatik & Gestaltung
.hover()
... beinhaltet die event handler für mouseenter und mouseleave ...$(selector).hover(handlerIn,handlerOut);isteinShortcutfür $(selector).mouseenter(handlerIn).mouseleave(handlerOut);
Seite 37Grundlagen digitaler Gestaltung | Niklas Teich Medieninformatik & Gestaltung
.load()
...wirdaneinElementgesendet,sobaldalleUnter-Elementevollständig geladen sind. ...kannaufverschiedeneTypengesetztwerdenwieBilder,Scripte, frames,iframeunddaswindow Objekt
$(window).load(function(){
// Hier kommt unser jQuery Code rein
});
Seite 38Grundlagen digitaler Gestaltung | Niklas Teich Medieninformatik & Gestaltung
.scroll()
...wirdalseventgesendet,wennderUserindemElementscrollt ...istfürdasganzeFenstermöglich,aberauchfüreinzelnebereichewiez.b.Frames oderEinzelelemente
Seite 39Grundlagen digitaler Gestaltung | Niklas Teich Medieninformatik & Gestaltung
Übersicht der zur Verfügung stehenden Events
...bind() ...event.isDefaultPrevented() ...mousemove() ...blur() ...event.isImmediatePropagationStopped() ...mouseout() ...change() ...event.isPropagationStopped() ...mouseover() ...click() ...event.namespace() ...mouseup() ...dbclick() ...event.pageX() ...one() ...delegate() ...event.pageY() ...jQuery.proxy() ...die() ...event.preventDefault() ...ready() ...error() ...event.relatedTarget() ...resize() ...event.currentTarget ...event.result() ...scroll() ...event.data ...event.stopImmediatePropagation() ...select() ...event.stopPropagation()...event.target ...submit() ...event.timeStamp ...event.type ...toggle() ...event.which ...focus() ...trigger() ...focusout() ...focusin() ...triggerHandler() ...hover() ...keydown() ...unbind() ...keypress() ...keyup() ...undelegate() ...live() ...load() ...unload() ...mousedown() ...mouseenter()
Seite 40Grundlagen digitaler Gestaltung | Niklas Teich Medieninformatik & Gestaltung
HTML Manipulation
Seite 41Grundlagen digitaler Gestaltung | Niklas Teich Medieninformatik & Gestaltung
HTML Inhalt ändern
... mit jQuery können wir nicht nur nette Effekte machen - wir können auch HTML Elemente und Attribute ändern und manipulieren
$(selector).html(content)
Element,welchewirgerne ansteuern möchten
die Funktion html
derInhaltdergeändert/hinzugefügt...wird
Seite 42Grundlagen digitaler Gestaltung | Niklas Teich Medieninformatik & Gestaltung
Praxis-Beispiel - .html()
...beimKlickaufunserenText<p>..mitderid=“menu“öffnet/schließtsichder Container „container“ mit einem slide-Effekt.
$(document).ready(function(){ $(“button).click(function(){ $(“p“).html(“Krautsalat“); }); });
(Online-Beispiel )
Seite 43Grundlagen digitaler Gestaltung | Niklas Teich Medieninformatik & Gestaltung
.append()
...mitderappendMethodekönnenInhaltehinterdemangesteuertenElementhinzu gefügtwerden.DerVorteilist,bereitsbestehenderInhaltwirdnichtüberschrieben!
$(selector).append(content)
Seite 44Grundlagen digitaler Gestaltung | Niklas Teich Medieninformatik & Gestaltung
.before()
...mitderappendMethodekönnenInhaltevordemangesteuertenElementhinzu gefügtwerden.DerVorteilist,bereitsbestehenderInhaltwirdnichtüberschrieben!
$(selector).before(content)
Seite 45Grundlagen digitaler Gestaltung | Niklas Teich Medieninformatik & Gestaltung
AJAX
Seite 46Grundlagen digitaler Gestaltung | Niklas Teich Medieninformatik & Gestaltung
AJAX
...istkeineProgrammiersprachesonderneineTechnikfürdasmoderneWeb ...wurdeeuchvonKonniebereitswunderschönerklärt ...istmitjQuerysehreinfachundeffizienteinsetzbar ...hateinegroßeBibliothekanMethodenfürdieUmsetzung
Seite 47Grundlagen digitaler Gestaltung | Niklas Teich Medieninformatik & Gestaltung
Mit jQuery und AJAX könnt ihr
...verschiedeneArtenvonDatenaustauschenwieTXT,HTML,XMLoderJSON überHTTPGetundPost
Seite 48Grundlagen digitaler Gestaltung | Niklas Teich Medieninformatik & Gestaltung
load()
...kannüberdieAjaxTechnologieDatenasynchronladen
$(selector).load(url,daten,callback)
Element,welchesmit Daten gefüllt wird
die Funktion loadAdressederzuladenenDatei
um Daten dem Server senden zukönnen
Funktion,dienachderAusführungvonfadeTo()durchgeführt werden soll
Seite 49Grundlagen digitaler Gestaltung | Niklas Teich Medieninformatik & Gestaltung
Praxis-Beispiel - load()
...aufKnopfdruckwirdder<p>..gesetzteTextmitdemInhaltdertest.txtausgetauscht
$(document).ready(function(){ $(“button“).click(function(){ $(“p“).load(“test.txt“); }); });
(Online-Beispiel )
Seite 50Grundlagen digitaler Gestaltung | Niklas Teich Medieninformatik & Gestaltung
Übersicht der zur Verfügung stehenden AJAX Methoden
...$.ajax() ...ajaxComplete() ...ajaxError() ...ajaxSend() ...$.ajaxSetup() ...ajaxStart() ...ajaxStop() ...ajaxSuccess() ...$.get() ...$.getJSON() ...$.getScript() ...load() ...$.param() ...$.post() ...serialize() ...serializeArray()
Seite 51Grundlagen digitaler Gestaltung | Niklas Teich Medieninformatik & Gestaltung
jQuery UI
Seite 52Grundlagen digitaler Gestaltung | Niklas Teich Medieninformatik & Gestaltung
jQuery UI
...behandelichindiesemReferatNICHT,dashatjajetztschonlangegenuggedauert! ... ist eine UserInterface Library ...beinhaltetInteraktionsmöglichkeitenwiez.B.Draggable,Droppable,Resizeable, Selectable,Sortable ...beinhaltetfertigeWidgetswiez.B.Accordion,Autocomplete,Buttons,Datepicker, Dialog,Progressbar,Slider,Tabs
wen es interessiert: www.jqueryui.com
Seite 53Grundlagen digitaler Gestaltung | Niklas Teich Medieninformatik & Gestaltung
jQuery Mobile
Seite 54Grundlagen digitaler Gestaltung | Niklas Teich Medieninformatik & Gestaltung
jQuery mobile
...InterfacesspeziellfürSmartphones&TabletPCs ...Touch-OptimizedLayoutsundWidgets ...Cross-Plattform&Cross-Device ... Template Designer ...wirdunterstütztvoniOS,android,BlackBeryy, bada,WindowsPhone,plamwebOS,symbian und MeeGo
wen es interessiert: www.jquerymobile.com
Seite 55Grundlagen digitaler Gestaltung | Niklas Teich Medieninformatik & Gestaltung
Links
Seite 56Grundlagen digitaler Gestaltung | Niklas Teich Medieninformatik & Gestaltung
Hier könnt alles zum Thema jQuery finden
...jquery.com OffizielleSeitemitunglaublichvielTutorials,einerriesigen Dokumentation,BeispielenundErläuterungen
...jqueryui.com OffizielleSeitefürjQueryUI
...jquerymobile.com OffizielleSeitefürjQueryMobile
...flowplayer.org/tools/ SammlungvonsehrsehrsehrvielenjQueryCodesfürsuper geileAnimationenindenBereichenTabs,Tooltips,Overlay, Validator,Rangeinput,Dateinput,Expose,Flashembed undverschiedeneKombinationen
...google.de Suchen!jQueryTutorial,Beispiele,Code-wasauchimmer,es gibt unendlich viele fertige Codes für die verrücktesten Sachen
...net.tutsplus.com NebenJSundAjaxsowiesoeineschöneTutorial-Seitemitdem Thema Design & Web Development
Seite 57Grundlagen digitaler Gestaltung | Niklas Teich Medieninformatik & Gestaltung
Vielen Dank für eure Aufmerksamkeit!