Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
d3.js + mobile
Search
binx
August 10, 2012
4.4k
11
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
d3.js + mobile
binx
August 10, 2012
Transcript
20 slides
d3.js + mobile Rachel Binx, Stamen Design
So the good news is that D3 works great on
mobile devices. The bad news is that you still have to build a mobile site.
1) Design 2) Interaction 3) Performance
Tools of the Trade
Viewport <link rel="stylesheet" media="screen and (max- device-width: 480px)" href=”iphone.css”/> <meta
name="viewport" content="width=device- width, initial-scale=1, maximum-scale=1"> @media screen and (max-device-width: 480px) { .column { float: left; } } Media Queries
Platform Detection navigator.userAgent IE iOS iPad iPhone Safari Firefox Chrome
SVG viewBox <svg width="300px" height="200px" viewBox="0 0 1500 1000" preserveAspectRatio="none">
<min-x> <min-y> <width> <height>
Tiny Screens! • Anything interactive on your page: make it
much larger • You will not have a cursor to indicate interaction models - consider labeling everything • Quite simply: remove all subtly
2011 MTV Video Music Awards http://sta.mn/hyd
Selected State
Interaction Models
Let’s Talk About Touch Limitations: click == hover drag ==
scroll Opportunities: multitouch!
Hover as Click 2011 Video Game Awards — http://sta.mn/cgq
Scroll as Drag maps.stamen.com Basically, beware of which elements on
the page will steal focus from whole-page interaction
Multitouch http://sta.mn/f3 d3.js jQuery .touches() touchstart touchmove touchend .drag() .zoom()
various plugins: touchstart/end swipes swipe/zoom/scale
Saucy Animations
Optimizing Framerate • Sadly, SVG is not hardware accelerated •
One solution: make the SVG element as small as it can be • Or, try removing setInterval / requestAnimationFrame in favor of event-based animation • If all else fails: refactor the animations!
Event-Based Animation 2012 NewNowNext Awards — http://sta.mn/rnm
Design + Interaction + Performance = Successful Mobile Project
Thanks!
[email protected]
@rachelbinx
More Decks by binx
See All by binx
On the Importance of Iteration
binx
0
160
Designing for Spacecraft Operations
binx
2
670
Place and Space
binx
0
570
Error: Success
binx
0
570
Peak Visualization?
binx
1
650
The Data Visualization Hustle
binx
2
510
People, Not Users
binx
2
290
Data Collection and Memory
binx
1
280
The Road To Code
binx
1
440
Featured
See All Featured
AI: The stuff that nobody shows you
jnunemaker
PRO
12
1.3k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
530
Statistics for Hackers
jakevdp
799
230k
New Earth Scene 8
popppiees
5
2.8k
Amusing Abliteration
ianozsvald
1
390
The Pragmatic Product Professional
lauravandoore
37
7.5k
The Language of Interfaces
destraynor
162
27k
Paper Plane
katiecoart
PRO
6
55k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
7.1k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
From π to Pie charts
rasagy
1
440
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
610