jquery mobile - environments for humansenvironmentsforhumans.com/...design...jquerymobile.pdfjquery...

Post on 12-Jun-2020

7 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Web Delivery for ALL!

jQuery Mobile

Monday, August 27, 12

Marc Grabanski

jQuery UI Datepicker

MarcGrabanski.com

LOTS of UI Dev

Who?

Monday, August 27, 12

Current

Talent Evangelist& UI/UX Developer

MJG Internationalwww.mjg.in

Who?

Monday, August 27, 12

www.MJG.in/FrontendMasters

Frontend Masters

5 Intense Video Workshops.4 Incredible Teachers.

Monday, August 27, 12

The web is for everyone and all can view it

The Great Promise of the Web

Monday, August 27, 12

Monday, August 27, 12

Not “Mobile Only”Mobile First

Monday, August 27, 12

Desktop too!

Monday, August 27, 12

Source Your Sources

Monday, August 27, 12

I visited

and talked to

about

Monday, August 27, 12

Why jQuery Mobile?

Monday, August 27, 12

4 Main Reasons to Use jQuery Mobile

Monday, August 27, 12

#1. Ajaxified Navigation

Friendly Ajax URLs

Faster subsequent page loads

Monday, August 27, 12

#2. Layout and Theming Engine

Quickly style and extend styles

Monday, August 27, 12

#3Touch Friendly Inputs

(and widgets)Improved UX for form inputs

Monday, August 27, 12

#4Widest Browser Coverage

Web living up to it’s promise

Monday, August 27, 12

Devices TestedjQuery Mobile Testing Lab

Monday, August 27, 12

Fully Supported• iOs 3.2+, Android 2.1+/Honeycomb

• Windows Phone 7

• Blackberry 6.0/Playbook

• Palm WebOS 1.4+

• Mobile Opera & Mobile Firefox

• Amazon Kindle 3 & Fire

• Desktop Chrome, FF, IE 7+, Opera

Monday, August 27, 12

ProgressiveEnhancement

C-Grade: Basic HTML

B-Grade: Enhanced Style, No Ajax

A-Grade: Full Enhanced Style,

Ajax and CSS Transitions

+++

Monday, August 27, 12

You’ll always see...something

Monday, August 27, 12

it’s alive!

Monday, August 27, 12

Galleryhttp://jqmgallery.com

Monday, August 27, 12

and growing...

http://www.google.com/trends/?q=jquery+mobile

Monday, August 27, 12

jQuery Mobile+ Adobe

Embedded into Creative SuiteSponsors jQuery Mobile Dev

Monday, August 27, 12

http://jquerymobile.com/test

Dev Snapshot

Monday, August 27, 12

One More *Magical* File

Monday, August 27, 12

#1 - AjaxifiedNavigation

Monday, August 27, 12

No page refresh?!How does that work?

Monday, August 27, 12

Looks forhref and actionin your HTML

Monday, August 27, 12

Auto-AjaxLinks

1. Ajax gets href=”page.html” (unless data-ajax=false)

2. Slides in New Content

3. Updates URL(with <body>...</body> or data-role=page)

Monday, August 27, 12

/index.html

*click*

Monday, August 27, 12

/index.html /page.html

*load*

Monday, August 27, 12

/index.html /page.html

*slide*

Monday, August 27, 12

/index.html /page.html

*done*

Monday, August 27, 12

Page Transitions

• <a data-transition=pop>...</a>(slide, slideup, slidedown, pop, fade, flip)

• <a data-transition=pop data-direction=reverse>...</a>

http://jquerymobile.com/test/docs/pages/page-transitions.html

Monday, August 27, 12

Default transition is now fade

(more webby)

Monday, August 27, 12

Pages w/out Ajax<div data-roll=page id=page1>...</div>

<div data-roll=page id=page2>...</div>

<a href=”#page1”>Page 1</a>

<a href=”#page2”>Page 2</a>

http://jquerymobile.com/demos/1.1.1/docs/pages/multipage-template.html

Monday, August 27, 12

No more#/crap/urls.html

Pushstate on Relative URLs

/index.html

to /index.html#/foo.html

to /foo.html

Monday, August 27, 12

1. Form action=”page.html” POST Ajax

2. Slides in New Content

3. Updates URL(same as links)

Auto-AjaxForms

Monday, August 27, 12

I don’t use auto-ajax forms. Disable with

data-ajax=false

Monday, August 27, 12

#2 - Layout and Theming

Monday, August 27, 12

Looking fordata-* attributes

Monday, August 27, 12

Play a Role

data-role=*

page, header, content, footer, listview, list-divider, button, controlgroup

Monday, August 27, 12

Structure

<div data-role="page">

<div data-role="header">...</div>

<div data-role="content">...</div>

<div data-role="footer">...</div>

</div>

http://jquerymobile.com/demos/1.1.1/docs/pages/page-anatomy.html

Monday, August 27, 12

Markup

Magical

Zones

<div data-role=header>...</div>

<div data-role=content>...</div>

<div data-role=footer>...</div>

Monday, August 27, 12

Docs Structure

<div data-role=content>

<div data-role=footer>

<div data-role=page>

Monday, August 27, 12

Listview

Monday, August 27, 12

Listview

<ul data-role=listview ...><li data-role=list-divider>...</li><li><a href=”...”></a></li><li><a href=”...”></a></li><li><a href=”...”></a></li><li><a href=”...”></a></li><li><a href=”...”></a></li>...

</ul>

Monday, August 27, 12

data-* Theme Attributes

• data-theme=[a-f]

• data-[element]theme=[a-f]

• <ul data-dividertheme=[a-f]>

• <ul data-inset=true>

http://jquerymobile.com/demos/1.1.1/docs/api/themes.html

Monday, August 27, 12

List Theming

<ul data-theme=[a-f]>

http://jquerymobile.com/demos/1.1.1/docs/api/themes.html

Monday, August 27, 12

List Theming

<ul data-theme=b> <li>...</li> <li>...</li> </ul>

Monday, August 27, 12

Content Themingui-[body|bar]-[a-f]

class=”ui-body ui-body-b”

class=”ui-bar ui-bar-c”

Monday, August 27, 12

e.g. Docs Theming

<ul data-inset=true data-dividertheme=b ...>

<ul data-inset=true data-dividertheme=f ...>

Monday, August 27, 12

Responsive Docs Example

class=content-primary

class=content-secondary

MobileTablet and Desktop

Monday, August 27, 12

jQuery Mobile ThemeRoller

http://jquerymobile.com/themeroller/index.phpMonday, August 27, 12

ReusableWidgets

Monday, August 27, 12

Buttons

Link as a button

<a data-role=button ...>slidedown</a>

http://jquerymobile.com/test/docs/buttons/buttons-types.html

Monday, August 27, 12

data-* Button Theming

<button data-icon=*>arrow-r, delete, plus, minus, gear, grid, refresh, etc.

http://jquerymobile.com/test/docs/buttons/buttons-icons.html

Monday, August 27, 12

data-* Button Theming

<button data-inline=true>

<button data-icon=delete data-iconpos=right>

http://jquerymobile.com/test/docs/buttons/buttons-icons.html

Monday, August 27, 12

Dialog

<a data-rel=dialog>

http://jquerymobile.com/test/docs/pages/page-dialogs.htmlMonday, August 27, 12

Control Group

<div data-role=controlgroup data-type=horizontal>

<a data-role=button>Yes</a>

<a data-role=button>No</a>

<a data-role=button>Maybe</a>

</div>

http://jquerymobile.com/test/docs/buttons/buttons-grouped.html

Monday, August 27, 12

Navbardata-role=navbar

http://jquerymobile.com/demos/1.1.1/docs/toolbars/docs-navbar.html

Monday, August 27, 12

Navbar w/Icons

http://jquerymobile.com/demos/1.1.1/docs/toolbars/docs-navbar.html

Monday, August 27, 12

Filter Bar

<ul data-filter=true>

http://jquerymobile.com/demos/1.1.1/docs/lists/lists-search.html

Monday, August 27, 12

http://jquerymobile.com/test/docs/pages/popup/index.html

Popup Widget (in 1.2)

Monday, August 27, 12

#3Touch-friendlyForm Inputs

Monday, August 27, 12

Enhance Form Elements

Default MOBILIZED!

Monday, August 27, 12

Monday, August 27, 12

Slider

<input type=range value=50 min=0 max=100>

http://jquerymobile.com/demos/1.1.1/docs/forms/slider/

Monday, August 27, 12

Search Input

<input type=search>

http://jquerymobile.com/demos/1.1.1/docs/forms/search/

Monday, August 27, 12

Checkbox Set

http://jquerymobile.com/demos/1.1.1/docs/forms/checkboxes/

Monday, August 27, 12

Radio Button Set

http://jquerymobile.com/demos/1.1.1/docs/forms/radiobuttons/

Monday, August 27, 12

Flip Switch<select data-roll=slider>

<option>Switch Off</option>

<option>Switch On</option>

</select>

http://jquerymobile.com/demos/1.1.1/docs/forms/switch/

Monday, August 27, 12

data-native-menu=true

Monday, August 27, 12

data-native-menu=false

http://jquerymobile.com/demos/1.1.1/docs/forms/selects/custom.html

Monday, August 27, 12

HTML5 Input Types(not just jQuery Mobile)

Monday, August 27, 12

<input type=password>

Monday, August 27, 12

<input type=number>

Monday, August 27, 12

<input type=email>

Monday, August 27, 12

<input type=url>

Monday, August 27, 12

<input type=tel>

Monday, August 27, 12

Misc Notes

Monday, August 27, 12

Widgets• page sections

• checkboxradio

• select

• slider

• textinput

• links

• collapsible

• popup

• controlgroup

• fieldcontain

• fixheaderfooter

• button

• listview

• navbar

• grid

• dialog

Monday, August 27, 12

Download Builder

http://jquerymobile.com/download-builder/

Monday, August 27, 12

SnippetsConfigure jQM

$(document).on("mobileinit", function(){

$.extend($.mobile , { foo: bar });

});

New DOM Ready

$(document).on(“pagecreate”, function(e) {

// do somefin’ will ya?

});

Monday, August 27, 12

Modifying DOM$page .append(“<a data-role=button>Button</a>”) .trigger(‘create’)

Initializes UI components

Monday, August 27, 12

Viewport Tag

Not auto-injected.

<meta name="viewport" content="width=device-width, initial-scale=1">

Monday, August 27, 12

No JavaScript Scroll

Native overflow support

-webkit-overflow-scrolling: touch;

No JavaScript “fake scrolling”

Still problems with it

Monday, August 27, 12

CSS Transitions

• New transitions turn and flow as of 1.1

• Flip on Android is Stupid(does a cartwheel)

Monday, August 27, 12

Plugins and Resources

http://jquerymobile.com/resources/Monday, August 27, 12

jQuery Mobile Router

https://github.com/azicchetti/jquerymobile-router

var approuter = new $.mobile.Router([

{ "#certainPage": { handler: "foo", events: "s" } },

{ "#certainPage": { handler: "bar", events: "h" } }

], {

foo: function(...){...},

bar: function(...){...}

}, options);

Monday, August 27, 12

Build Latest

1. $ git clone

git://github.com/jquery/jquery-mobile.git

2. $ npm install

3. $ node node_modules/.bin/grunt js$ node node_modules/.bin/grunt css

Monday, August 27, 12

Marc Grabanski@1marc

Monday, August 27, 12

top related