jquery mobile

35
© Mayflower GmbH 2010 Auffrischung jQuery jQuery Mobile Marco Francke I 03.03.2011

Upload: mayflower-gmbh

Post on 19-Jun-2015

4.528 views

Category:

Technology


0 download

DESCRIPTION

Auffrischung zu jQuery - Einführung - Tipps und Tricks im Alltag - Selektion und Manipulation von HTML-Elementen - besseres und effektiveres Binding jQuery Mobile - Einführung - Aufbau und Struktur - Wie arbeitet jQuery Mobile - Konfiguration von jQuery Mobile - Events - Methoden von jQuery Mobile

TRANSCRIPT

Page 1: jQuery Mobile

© Mayflower GmbH 2010

Auffrischung jQuery

jQuery Mobile

Marco Francke I 03.03.2011

Page 2: jQuery Mobile

Mayflower GmbH I 2

Was ist jQuery und was kann es?

Page 3: jQuery Mobile

Mayflower GmbH I 3

Was ist jQuery und was kann es?

I schnelle JavaScript Bibliothek basierend auf der Selector Engine Sizzle

I ermöglicht einfache Selection und Manipulation von HTML-Elementen

I einfaches Event-Handling

I bietet von "Haus" aus einfache Animationen an (toggle, slide, ...)

I einfache AJAX-Interaktionen

I versteht sich mit "allen" commerziellen Browsern

Page 4: jQuery Mobile

Mayflower GmbH I 4

Was spricht für die Verwendung von jQuery?

Page 5: jQuery Mobile

Mayflower GmbH I 5

Was spricht für die Verwendung von jQuery?

I wird von großen "Playern" verwendet (Google, Wordpress, Drupal, Mozilla, ...)

I wird als inoffizieller Standard gehandelt

I Sehr gute Dokumentation mit vielen Beispielen

I eine große Community

I einfach zu erlernen

I extrem viele Plugins

Page 6: jQuery Mobile

Mayflower GmbH I 6

Nützliches im Alltag

Page 7: jQuery Mobile

Mayflower GmbH I 7

Nützliches im Alltag

Die Selektoren:

I am schnellsten ist die Selektion über die ID

· $('#id');

I eingeschränkte Selektoren sind um ein Vielfaches schneller

· $('input.myClass') ist ca. 5-6 mal schneller als $('.myClass')

· $('a[href="index.html"]') ist auch ca. 5-6 mal schneller als $('[href="index.html"]')

Page 8: jQuery Mobile

Mayflower GmbH I 8

Nützliches im Alltag

I Selektion innerhalb eines Contexts

· $('input.myClass', $('#id')[0]) ist gut aber

· $('#id').find('input.myClass') ist noch besser

I Richtig gut ist:

· bereits selektierte Elemente (die öfter benötigt werden) in eine Variable speichern und diese dann im weiteren Verlauf verwenden

Page 9: jQuery Mobile

Mayflower GmbH I 9

Event-Handler

Page 10: jQuery Mobile

Mayflower GmbH I 10

Event-Handler

I Gewohnte Verwendung

· via closures (werden zur Laufzeit erzeugt)$('#id').click(function() { // mache was});

· gleiche wie$('#id').bind('click', function() { // mache was});

Page 11: jQuery Mobile

Mayflower GmbH I 11

Event-Handler

I Closures vermeiden

· besser: $('#id').click(myfunction);

I Aber Achtung Scope nicht verlieren!

· $('#id').click(jQuery.proxy(this.myFunction, this));

I Nützliche Begleiter wenn es um Events geht sind

· live und closest

I Beispiele sagen mehr als Worte

Page 12: jQuery Mobile

Mayflower GmbH I 12

jQuery Mobile

Fakten

Page 13: jQuery Mobile

Mayflower GmbH I 13

Fakten

I jQuery Mobile ist derzeit in der Version 1.0 verfügbar und ist ALPHA 3

I Bietet optimierte und angepasste UI-Widgets für mobile Endgeräte

I Einfaches Theming

I User Interface arbeitet mit den meisten Smartphones, Webbrowsern und Tablets

I Browser-History Management

Page 14: jQuery Mobile

Mayflower GmbH I 14

Fakten

I jQuery Mobile verfolgt den Ansatz high-end Geräte die HTML5, CSS3 und JS verszehen sowie weniger gut ausgestattete Geräte.

I Unterstützt Screenreader und andere unterstützende Technologien.

Page 15: jQuery Mobile

Mayflower GmbH I 15

Eigenschaften von jQuery Mobile

Page 16: jQuery Mobile

Mayflower GmbH I 16

Eigenschaften von jQuery Mobile

I setzt auf dem jQuery Core auf und daher gleiche Syntax >> geringe Lernkurve

I kompatibel mit den wichtigsten mobilen Plattformen

· iOS, Android, Blackberry, Palm WebOS, Nokia/Symbian, Windows Mobile, bada, MeeGo

I Selbstverständlich ist auch jQuery Mobile ein Leichtgewicht von 12k (compressed) und beinhaltet alle Mobile relevanten Funktionen

Page 17: jQuery Mobile

Mayflower GmbH I 17

Eigenschaften von jQuery Mobile

I jQuery Mobile verwendet das HTML5 data-role Attribut als Trigger um alle Widgets zu initialisieren

I einfache und gut dokumentierte API

I neue Events für Touch-Screens mit Fallback- Funktionalität

Page 18: jQuery Mobile

Mayflower GmbH I 18

Wie geht jQuery Mobile vor?

Page 19: jQuery Mobile

Mayflower GmbH I 19

Wie geht jQuery Mobile vor?

I Es hängt sich automatisch an Markup-Erweiterungen

I Entsprechend der Attribute lädt es die Plugins und wandelt das HTML in ein interaktives UI um.

I Dieser Vorgang ist die Standardeinstellung von jQuery Mobile. Dieses Verhalten kann konfiguriert werden.

· Beispiel: Grundgerüsst einer jQ-Mobile-App

Page 20: jQuery Mobile

Mayflower GmbH I 20

Konfiguration

Page 21: jQuery Mobile

Mayflower GmbH I 21

Konfiguration

I So bald jQuery Mobile geladen wird, wird das „mobileinit“-Event getriggert.

I Innerhalb des mobileinit-Handlers kann man mit $.mobile.* Standard-Konfigurationen ändern oder erweitern

Page 22: jQuery Mobile

Mayflower GmbH I 22

Konfiguration

I Standard-Konfigurationen:

· nonHistorySelectors (string, default: "dialog"):wird eine Seite über einen Link mit dem Attribut data-

rel=“dialog“ oder wird die Seite mit dem Attribut data-role=“dialog“ aufgerufen, dann wird keine Browser-History aufgezeichnet

· ajaxLinksEnabled (boolean, default: true):es wird versucht, alle Seiten mit AJAX aufzurufen

· ajaxFormsEnabled (boolean, default: true):Formulare werden ebenso mit AJAX abgeschickt

Page 23: jQuery Mobile

Mayflower GmbH I 23

Konfiguration

· transitions (array, default: ['slide', 'slideup', 'slidedown', 'pop', 'flip', 'fade']):

Verfügbare Übergangseffekte

· defaultTransition (string, default: 'slide'):Standard-Übergang

· loadingMessage (string, default: 'loading'):Standard-Popupnachricht beim Laden

I Beispiel: Konfiguration der Mobile-App

Page 24: jQuery Mobile

Mayflower GmbH I 24

Events

Page 25: jQuery Mobile

Mayflower GmbH I 25

Events

I jQuery Mobile bietet verschiedene neue Events, die für mobile Geräte und ebenso für Desktop-Umgebungen funktionieren

· Bsp.: tap -> mouseclick

I Das Event-Binding ist wie gewohnt

Page 26: jQuery Mobile

Mayflower GmbH I 26

Events

I Touch-Events

· tapwird getriggert bei einer kurzen Berührung

· tapholdwird getriggert nach ca. einer Sekunde

· swipewird getriggert nach einer horizontalen Wischung von 30px

oder einer vertikalen Wischung von weniger als 20px

Page 27: jQuery Mobile

Mayflower GmbH I 27

Events

· swipeleftwie swipe nur gerichtet nach links

· swiperightwie swipe nur gerichtet nach rechts

I Orientation Event:

· orientationchangewird getriggert bei der Änderung der Handyposition von der

Portrait- in Landscape- Ansicht und umgekehrt (Hochformat/Querformat)

I Beispiel: Events einer jQ-Mobile-App

Page 28: jQuery Mobile

Mayflower GmbH I 28

Events - Scroll-Events

· scrollstartwird getriggert, wenn eine Scrollbewegung beginnt

· Scrollstopwird getriggert, wenn die Scrollbewegung beendet wird

Page 29: jQuery Mobile

Mayflower GmbH I 29

Events - Page-Events

I Immer wenn eine Seite angezeigt wird oder verschwindet, werden jeweils 2 Events getriggert.

· pagebeforeshowwird getriggert bevor die Seite dargestellt wird

· pagebeforehidewird getriggert bevor die Seite verschwindet

Page 30: jQuery Mobile

Mayflower GmbH I 30

Events - Page-Events

· pageshowwird getriggert nachdem die Seite dargestellt wurde

· pagehidewird getriggert nachdem die Seite verschwunden ist

Page 31: jQuery Mobile

Mayflower GmbH I 31

Methoden

Page 32: jQuery Mobile

Mayflower GmbH I 32

Methoden

I jQuery Mobile bietet Methoden an, die später an einer geeigneten Stelle über das „$.mobile“-Objekt aufgerufen werden können.

· $.mobile.changePage (method)Aufruf einer Seite

· $.mobile.pageLoading (method)zeigt und versteckt das "loading" Popup

· $.mobile.silentScroll (method)scrollt zu einer angegeben Y-Position ohne die Scroll-Events

zu triggern

I Beispiel: Methoden von jQuery-Mobile

Page 33: jQuery Mobile

Mayflower GmbH I 33

Layout-Helfer

Page 34: jQuery Mobile

Mayflower GmbH I 34

Layout-Helfer

I jQuery Mobile setzt Device-spezifische Klassen im HTML-Tag um das Layout an das entsprechende Gerät bzw. Position des Gerätes anzupassen. Im JS und CSS kann man sich darauf beziehen, um eigene Änderungen vorzunehmen.

· Die portait und landscape Klasse gibt an, in welcher Position sich das Device gerade befindet

· Klasse wie z.B. „max-width-320px“ gibt die maximal darstellbare Breite an

Page 35: jQuery Mobile

10.03.11 Mayflower GmbH 35

Vielen Dank für Ihre Aufmerksamkeit!

Kontakt Marco Francke

[email protected]

Mayflower GmbH

Mannhardtstrasse6

80538 München