Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
d3.js + mobile
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
binx
August 10, 2012
4.4k
11
Share
d3.js + mobile
binx
August 10, 2012
More Decks by binx
See All by binx
On the Importance of Iteration
binx
0
120
Designing for Spacecraft Operations
binx
2
630
Place and Space
binx
0
540
Error: Success
binx
0
540
Peak Visualization?
binx
1
620
The Data Visualization Hustle
binx
2
470
People, Not Users
binx
2
270
Data Collection and Memory
binx
1
250
The Road To Code
binx
1
410
Featured
See All Featured
Product Roadmaps are Hard
iamctodd
PRO
55
12k
The Cult of Friendly URLs
andyhume
79
6.9k
Practical Orchestrator
shlominoach
191
11k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
540
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
150
Joys of Absence: A Defence of Solitary Play
codingconduct
1
350
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
280
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
160
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.2k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
170
Design in an AI World
tapps
1
200
Transcript
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