83
Ajax Patterns Rich interaction idioms Bill Scott Yahoo! Ajax Evangelist [email protected] 1

Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

Ajax PatternsRich interaction idioms

Bill ScottYahoo! Ajax Evangelist

[email protected]

1

Page 2: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

background

2

Page 3: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

background

2

Page 4: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

background

2

Page 5: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

background

2

Page 6: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

rich patternsDrag and Drop. Drag and Drop Modules. In Page Editing. In Page Custom

Editing. Direct State Editing. Grid Cell Editing. Inline Custom Editing. Inline Tag Editing. Popup Custom Editing. Slide-out Custom Editing. Inline Text Editing. Persistent Portals. Inline Reordering. Indication. Busy Indication. Cursor Busy. In Context Busy. In Context Progress. Inline Status. Auto Complete. Balloon Error Tip. Deferred Content Loading. Dynamic Goal.

Narrowing Choices. Refining Search. Live Search. Dynamic Filter. Invitation. Cursor Invitation. Drop Invitation. Tool Tip Invitation. Hover Invitation. Detail Zoom. Opacity Focus. Configurable Module - Faceplate. Configurable Module - Flip It. Configurable Module - Inline Configure. Configurable Module - Slide

Out Drawer. Slide Out. Flip. Opacity Fade. Endless Scrolling. Expandable Paging Boundary. Fresh Content. Hover Detail. In Place Drill Down. Inline

Assistant. Inline Validation. Validate Then Suggest. On Demand Refresh. Periodic Refresh. Resizable Modules. Scrolling Modules. Auto Save. In Context

Tools. Remembered Collection. Remembered Preferences. Auto Form Fill. Rating an Object. Transition. Brighten Transition. Cross Fade Transition. Dim

Transition. Expand Transition. Fade In Transition. Fade Out Transition. Flip Transition. Move Transition. Self-Healing Transition. Collapse Transition. Slide

Transition. Rich Internet Object. Available. Selected.

3

Page 7: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

How to deconstruct patterns?• Interaction

event, timer, invitation

• Operationlookup, action, validate, message

• Presentationupdate to the interface

Interaction Operation Presentation

4

Page 8: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

interaction.• Every pattern starts with an interaction

User event (event)System event (timer)

• Some patterns are about inviting interaction

mouseout hover keypress keydown mousedown drop filter choices mouseup drag click mousedown select

focus blur resize move timeout select

Interaction Operation Presentation

5

Page 9: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

operation.• Lookup. I can get information when I need it.

• Action. I can take action in context.

• Validate. I can prevent errors early.

• Message. I can communicate instantly.

Interaction Operation Presentation

6

Page 10: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

operation. lookup.• I can get information when I need it

InteractionLookup

Operation Presentation

Auto Complete. Deferred Content Loading. Dynamic Goal. Narrowing Choices. Refining

Search. Live Search. Dynamic Filter. Detail Zoom. Endless Scrolling. Expandable Paging Boundary.

Fresh Content. Hover Detail. In Place Drill Down. On Demand Refresh. Periodic Refresh. Resizable

Modules. Scrolling Modules. Auto Form Fill.

7

Page 11: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

operation. action.• I can take action in context

InteractionAction

Operation Presentation

Drag and Drop Modules. In Page Editing. In Page Custom Editing. Direct State Editing. Grid Cell Editing. Inline Custom Editing. Inline Tag Editing. Popup Custom Editing. Slide-out Custom Editing. Inline Text Editing. Inline Reordering. Auto Save.

Remembered Collection. Remembered Preferences. Rating an Object.

8

Page 12: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

operation. validate.• I can prevent errors early

InteractionValidate

Operation Presentation

inline validate. validate then suggest. balloon error tip. character counter. live preview.

9

Page 13: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

presentation

Interaction Operation Presentation

Indication. Busy Indication. Cursor Busy. In Context Busy. In Context Progress. Inline Status. Transition.

Brighten Transition. Cross Fade Transition. Dim Transition. Expand Transition. Fade In Transition. Fade Out Transition. Flip Transition. Move Transition. Self-

Healing Transition. Collapse Transition. Slide Transition. . Available. Selected. Slide-out. Popup Balloon.

10

Page 14: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

Pattern-O-Matic

Interaction

11

Operation PresentationDesignPattern

Complete=++

11

Page 15: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

Pattern-O-Matic

Interaction

11

Operation PresentationDesignPattern

Complete=Lookup ++

Auto Complete. Deferred Content Loading. Dynamic Goal. Narrowing Choices. Refining Search. Live Search. Dynamic Filter. Detail Zoom.

Endless Scrolling. Expandable Paging Boundary. Fresh Content. Hover Detail. In Place Drill Down. On Demand Refresh. Periodic Refresh.

Resizable Modules. Scrolling Modules. Auto Form Fill.

11

Page 16: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

Pattern-O-Matic

Interaction

11

Operation PresentationDesignPattern

Complete=Lookup

DropDown

UpdatesKeypress Auto

Complete++

11

Page 17: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

Pattern-O-Matic

Interaction

11

Operation PresentationDesignPattern

Complete=Lookup

DropDown

UpdatesKeypressOnscrollEvent

Grid CellUpdates

AutoCompleteEndlessScrolling++

11

Page 18: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

Pattern-O-Matic

Interaction

11

Operation PresentationDesignPattern

Complete=Lookup

DropDown

UpdatesKeypressOnscrollEvent

Grid CellUpdates

AutoComplete

HoverEvent

LightweightPopupShowsDetail

EndlessScrollingHoverDetail++

11

Page 19: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

Pattern-O-Matic

Interaction

11

Operation PresentationDesignPattern

Complete=Lookup

DropDown

UpdatesKeypressOnscrollEvent

Grid CellUpdates

AutoComplete

HoverEvent

LightweightPopupShowsDetail

EndlessScrollingHoverDetail

SearchResultsRefined

SelectFilters

RefiningSearch

ContentModuleUpdates

++

11

Page 20: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

Pattern-O-Matic

Interaction

11

Operation PresentationDesignPattern

Complete=Lookup

DropDown

UpdatesKeypressOnscrollEvent

Grid CellUpdates

AutoComplete

HoverEvent

LightweightPopupShowsDetail

EndlessScrollingHoverDetail

SearchResultsRefined

SelectFilters

RefiningSearch

ContentModuleUpdates

Persist PresentationInteractionPersistDesignPattern

++

Drag and Drop Modules. In Page Editing. In Page Custom Editing. Direct State Editing. Grid Cell Editing. Inline Custom Editing. Inline Tag Editing. Popup Custom Editing. Slide-out Custom Editing. Inline Text

Editing. Inline Reordering. Auto Save. Remembered Collection. Remembered Preferences. Rating an Object.

11

Page 21: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

Pattern-O-Matic

Interaction

11

Operation PresentationDesignPattern

Complete=Lookup

DropDown

UpdatesKeypressOnscrollEvent

Grid CellUpdates

AutoComplete

HoverEvent

LightweightPopupShowsDetail

EndlessScrollingHoverDetail

SearchResultsRefined

SelectFilters

RefiningSearch

ContentModuleUpdates

Persist PresentationInteractionPersistDesignPattern

UIReflects

OK Status

Save Button InlineEdit++

11

Page 22: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

Pattern-O-Matic

Interaction

11

Operation PresentationDesignPattern

Complete=Lookup

DropDown

UpdatesKeypressOnscrollEvent

Grid CellUpdates

AutoComplete

HoverEvent

LightweightPopupShowsDetail

EndlessScrollingHoverDetail

SearchResultsRefined

SelectFilters

RefiningSearch

ContentModuleUpdates

Persist PresentationInteractionPersistDesignPattern

UIReflects

OK Status

Save Button InlineEdit

Drag &Drop

Module

UIReflects

OK Status

PersistentPortals++

11

Page 23: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

Pattern-O-Matic

Interaction

11

Operation PresentationDesignPattern

Complete=Lookup

DropDown

UpdatesKeypressOnscrollEvent

Grid CellUpdates

AutoComplete

HoverEvent

LightweightPopupShowsDetail

EndlessScrollingHoverDetail

SearchResultsRefined

SelectFilters

RefiningSearch

ContentModuleUpdates

Persist PresentationInteractionPersistDesignPattern

UIReflects

OK Status

Save Button InlineEdit

Drag &Drop

Module

UIReflects

OK Status

PersistentPortals

Operation PresentationInteraction AjaxPattern++

11

Page 24: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

How to Open up Patterns?

12

Page 25: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

How to Open up Patterns?

12

Page 26: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

How to Share Patterns?

13

Page 27: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

How to Share Patterns?

13

Page 28: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

How to Share Patterns?

PatternService

13

Page 29: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

How to Share Patterns?

PatternService

Yahoo! service responds with a JSON

representation of a pattern. Allows anyone to mashup the

patterns into a corporate pattern library

13

Page 30: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

How to Share Patterns?

PatternService

Yahoo! service responds with a JSON

representation of a pattern. Allows anyone to mashup the

patterns into a corporate pattern library

CorporateBrandedPattern

Site(mashup)

13

Page 31: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

How to Organize?

14

Page 32: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

How to Teach Patterns?

design principles for richness

Interaction InfoFeedback

15

Page 33: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

principle. make it direct.

16

Page 34: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

principle. make it direct.

pattern. in-page action.

16

Page 35: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

pattern. drag & drop.

principle. make it direct.

pattern. in-page action.

16

Page 36: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

pattern. drag & drop.

principle. make it direct.

pattern. in-page action.

16

Page 37: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

pattern. drag & drop.

principle. make it direct.

pattern. inline editing.

pattern. in-page action.

16

Page 38: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

pattern. drag & drop.

principle. make it direct.

pattern. inline editing.

pattern. in-page action.

16

Page 39: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

pattern. drag & drop.

principle. make it direct.

pattern. inline editing.

pattern. in-context tools.

pattern. in-page action.

16

Page 40: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

pattern. drag & drop.

principle. make it direct.

pattern. inline editing.

pattern. in-context tools.

pattern. in-page action.

16

Page 41: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

principle. keep a light footprint.

17

Page 42: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

principle. keep a light footprint.

pattern. in page action.

17

Page 43: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

principle. keep a light footprint.

pattern. remembered collections.

pattern. in page action.

17

Page 44: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

principle. keep a light footprint.

pattern. remembered collections.

pattern. in page action.

17

Page 45: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

principle. keep a light footprint.

pattern. remembered collections.

pattern. rating an object.pattern. in page action.

17

Page 46: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

principle. keep a light footprint.

pattern. remembered collections.

pattern. rating an object.pattern. in page action.

17

Page 47: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

principle. keep a light footprint.

pattern. remembered collections.

pattern. rating an object.pattern. in page action.

17

Page 48: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

principle. cross borders reluctantly.

18

Page 49: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

principle. cross borders reluctantly.pattern. on-demand scrolling.

18

Page 50: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

principle. cross borders reluctantly.pattern. on-demand scrolling. pattern. in-context expand.

18

Page 51: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

principle. cross borders reluctantly.pattern. on-demand scrolling. pattern. in-context expand. pattern. inline assistant.

18

Page 52: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

principle. cross borders reluctantly.pattern. on-demand scrolling.

pattern. hover details.

pattern. in-context expand. pattern. inline assistant.

18

Page 53: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

principle. cross borders reluctantly.pattern. on-demand scrolling.

pattern. hover details.

pattern. in-context expand. pattern. inline assistant.

18

Page 54: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

principle. cross borders reluctantly.pattern. on-demand scrolling.

pattern. hover details.

pattern. in-context expand. pattern. inline assistant.

pattern. lightweight popup + lightbox.

18

Page 55: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

principle. give live feedback.

19

Page 56: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

principle. give live feedback.pattern. live suggest.

19

Page 57: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

principle. give live feedback.pattern. live suggest.

pattern. auto complete.

19

Page 58: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

principle. give live feedback.pattern. live suggest.

pattern. auto complete.

19

Page 59: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

principle. give live feedback.pattern. live suggest.

pattern. auto complete.

pattern. periodic refresh.

19

Page 60: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

principle. give live feedback.pattern. live suggest.

pattern. auto complete.

pattern. periodic refresh.

pattern. busy indicator.

19

Page 61: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

principle. give live feedback.pattern. live suggest.

pattern. auto complete.

pattern. periodic refresh.

pattern. live previews.

pattern. busy indicator.

19

Page 62: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

principle. offer an invitation.

20

Page 63: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

principle. offer an invitation.

pattern. hover invitation.

20

Page 64: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

principle. offer an invitation.

pattern. hover invitation.

pattern. tour invitation.

20

Page 65: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

principle. offer an invitation.

pattern. hover invitation. pattern. drop invitation.

pattern. tour invitation.

20

Page 66: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

principle. offer an invitation.

pattern. hover invitation.

pattern. tooltip invitation + hover invitation + cursor invitation.

pattern. drop invitation.

pattern. tour invitation.

20

Page 67: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

principle. offer an invitation.

pattern. hover invitation.

pattern. tooltip invitation + hover invitation + cursor invitation.

pattern. drop invitation.

pattern. tour invitation.

20

Page 68: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

principle. show transitions.

21

Page 69: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

principle. show transitions.

pattern. fade transition + self-healing transition.

21

Page 70: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

principle. show transitions.

pattern. fade transition + self-healing transition.

pattern. slide transition.

21

Page 71: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

principle. show transitions.

pattern. fade transition + self-healing transition.

pattern. slide transition.

pattern. active spotlight.

21

Page 72: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

principle. show transitions.

pattern. fade transition + self-healing transition.

pattern. slide transition.

pattern. active spotlight.

pattern. zoom box.

21

Page 73: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

principle. think in objects.

22

Page 74: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

principle. think in objects.

pattern. shareable object.

22

Page 75: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

principle. tie information to interactivity.

23

Page 76: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

principle. tie information to interactivity.

pattern. multi-variate views.

23

Page 77: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

principle. tie information to interactivity.

pattern. multi-variate views.

23

Page 78: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

A look at the flip-side: Anti-Patterns

big ball of mud. meandering way. borg idiom. tiny targets. mystery meat.

buried treasure. hover and cover. pogo stick navigation. novel notions.

against the flow. metaphor mismatch. double duty. linkitus. blind type.

windows aplenty. animation gone wild. misguided misdirections. unmarked hazards.

missed moments. missing scene. one at a time. non-symmetrical actions.

24

Page 79: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

How to make it easier to prototype?

25

Page 80: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

anatomy of a drag/drop'#scratchpad-list img': { DragDrop: { dropTarget: '#idcard-mini div.icon, h2:contains(My Portfolio)', onDragOver: { ReplaceStyle: { removeClass: 'not-dragged-over', addClass: 'dragged-over' } }, onDragOut: { ReplaceStyle: { removeClass: 'dragged-over', addClass: 'not-dragged-over' } }, onDragDrop: { InnerHtml: { copyFrom: '$drag', onTrigger: { Fade: { opacity: {from:0.0, to: 1.0}, duration: 0.25 } } }, ReplaceStyle: { removeClass: 'dragged-over', addClass: 'not-dragged-over' } } }},

26

Page 81: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

anatomy of a drag/drop'#scratchpad-list img': { DragDrop: { dropTarget: '#idcard-mini div.icon, h2:contains(My Portfolio)', onDragOver: { ReplaceStyle: { removeClass: 'not-dragged-over', addClass: 'dragged-over' } }, onDragOut: { ReplaceStyle: { removeClass: 'dragged-over', addClass: 'not-dragged-over' } }, onDragDrop: { InnerHtml: { copyFrom: '$drag', onTrigger: { Fade: { opacity: {from:0.0, to: 1.0}, duration: 0.25 } } }, ReplaceStyle: { removeClass: 'dragged-over', addClass: 'not-dragged-over' } } }},

Reads like this:

Make all images in scratchpad draggable.

On drag over, change style to reflect hover. On drag out, restore style.

On drop (on valid target) copy the drag item’s HTML into the id photo area, then fade the dropped item from 0 to 100%

26

Page 82: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

anatomy of a drag/drop'#scratchpad-list img': { DragDrop: { dropTarget: '#idcard-mini div.icon, h2:contains(My Portfolio)', onDragOver: { ReplaceStyle: { removeClass: 'not-dragged-over', addClass: 'dragged-over' } }, onDragOut: { ReplaceStyle: { removeClass: 'dragged-over', addClass: 'not-dragged-over' } }, onDragDrop: { InnerHtml: { copyFrom: '$drag', onTrigger: { Fade: { opacity: {from:0.0, to: 1.0}, duration: 0.25 } } }, ReplaceStyle: { removeClass: 'dragged-over', addClass: 'not-dragged-over' } } }},

Reads like this:

Make all images in scratchpad draggable.

On drag over, change style to reflect hover. On drag out, restore style.

On drop (on valid target) copy the drag item’s HTML into the id photo area, then fade the dropped item from 0 to 100%

'#idcard-mini div.icon, h2:contains(My Portfolio)'

'#scratchpad-list img'

26

Page 83: Ajax Patterns - Bill Scott's Portfoliobillwscott.com/share/presentations/2007/target/AjaxPatterns.pdf · 4. interaction. • Every ... Interaction Persist PresentationModule Persist

Behaviors ~ Patterns

Resize. Animate. Spotlight. Fade. Move. ToggleStyle. Style. ReplaceStyle. Show. Hide.

ToggleShowHide. Eval. Open. Close. ToggleOpenClose. InnerHtml. AjaxInnerHtml. Popup. DragDrop. Click. Dblclick. Blur. Focus.

Mouseover. Mousemove. Mouseout. Keydown. Keyup.

27