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
SVGアニメーションをやってみたら結構いい感じにできた話
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
inureo
April 23, 2015
Programming
160
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
SVGアニメーションをやってみたら結構いい感じにできた話
inureo
April 23, 2015
More Decks by inureo
See All by inureo
IGNITION: What we did to provide a high-quality experience
inureo
0
110
リアルタイム回答集計システムを作って、実際にイベントで使った話
inureo
1
870
はじめてのexpress+socket.io
inureo
1
4.1k
Other Decks in Programming
See All in Programming
AI時代のUIはどこへ行く?その2!
yusukebe
19
6.7k
メソッドのジェネリクスでGoの夢は広がるか? / Kyoto.go #65
utgwkk
3
560
軽量Java基盤の設計 DIコンテナに頼らない、長期保守と1秒起動の実現 JJUG CCC 2026 Spring
macha64
0
460
net-httpのHTTP/2対応について
naruse
0
440
Lemonade + Foundry Toolkit でお手軽アプリ開発
seosoft
1
310
GitHub Copilot CLIのいいところ
htkym
2
1.3k
並列実装の現場、2ヶ月間実務でAIを使い倒したAIもPCも私も限界が近い
ming_ayami
0
110
Oxlintのカスタムルールの現況
syumai
5
1k
dRuby over BLE
makicamel
2
320
CLIであることを活かしたGitHub Copilot CLI活用術 / GitHub Copilot CLI Pro Tips & Tricks
nao_mk2
1
1.2k
TAKTでAI駆動開発の品質を設計する
j5ik2o
6
930
Datadog × OpenTelemetry 入門と実践のあいだ
kn_to_maxpno
1
140
Featured
See All Featured
Documentation Writing (for coders)
carmenintech
77
5.4k
The Curious Case for Waylosing
cassininazir
1
370
Building AI with AI
inesmontani
PRO
1
1.1k
Speed Design
sergeychernyshev
33
1.8k
Between Models and Reality
mayunak
4
330
Docker and Python
trallard
47
3.9k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.3k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
240
Measuring & Analyzing Core Web Vitals
bluesmoon
9
860
The Mindset for Success: Future Career Progression
greggifford
PRO
0
350
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Believing is Seeing
oripsolob
1
140
Transcript
SVGΞχϝʔγϣϯΛͬͯΈͨΒ ݁ߏ͍͍ײ͡ʹͰ͖ͨ גࣜձࣾnanapi ख௩ ྄ @inureo
ࣗݾհ ख௩ ྄ @inureo גࣜձࣾnanapi ΤϯδχΞ - άϥϑΟοΫσβΠϯͷઐֶߍΛଔۀ - Web੍࡞ձࣾ
5 - 201310݄ nanapiʹΤϯδχΞͱͯ͠ೖࣾ དྷྺ ※ ݩʑσβΠφʔͳͷͰϑϩϯτपΓ͕ಘҙ ϝΠϯͷۀͰRailsʴTypeScript+Markup ɹCapybara+PoltergeistͰE2Eςετ͕͖ʹͳΔ
ࠓ͍͑ͨ͜ͱ 47(Ξχϝʔγϣϯ ݁ߏΑ͘ͳ͍ʁ
ࠓ͍͑ͨ͜ͱ ࠓճ47(Λಈతʹ ಈ͔ͯ͠Έ͓ͨΛ͠·͢ʂ
1. SVGΞχϝʔγϣϯ࡞ͬͯΔͳ͏ 2. SVGΞχϝʔγϣϯΛ࡞ΔϙΠϯτ 3. canvasͱൺͯΈΔ 4. ·ͱΊ ࠓͷΞδΣϯμ
1. SVGΞχϝʔγϣϯ࡞ͬͯΔͳ͏ 2. SVGΞχϝʔγϣϯΛ࡞ΔϙΠϯτ 3. canvasͱൺͯΈΔ 4. ·ͱΊ ࠓͷΞδΣϯμ
SVGΞχϝʔγϣϯ࡞ͬͯΔͳ͏ ԿΛ࡞ͬͯΔͷ͔
SVGΞχϝʔγϣϯ࡞ͬͯΔͳ͏ InTHEnetͷΦʔϓχϯάΞχϝʔγϣϯ InTHEnetͱ ౦ژϝτϩΦʔϓϯσʔλίϯςετʹԠืͨ͠ʮϝτ ϨϙʯɺYahoo!ϓϩτλΠϓίϯςετ’14 Ͱ४άϥ ϯϓϦɾUIΛ֫ಘͨ͠ʮϋϛΨίʯΛ࡞ͬͨνʔϜ
SVGΞχϝʔγϣϯ࡞ͬͯΔͳ͏ InTHEnetͷΦʔϓχϯάΞχϝʔγϣϯ InTHEnetͱ ౦ژϝτϩΦʔϓϯσʔλίϯςετʹԠืͨ͠ʮϝτ ϨϙʯɺYahoo!ϓϩτλΠϓίϯςετ’14 Ͱ४άϥ ϯϓϦɾUIΛ֫ಘͨ͠ʮϋϛΨίʯΛ࡞ͬͨνʔϜ σϞ
SVGΞχϝʔγϣϯ࡞ͬͯΔͳ͏ *MMVTUSBUPSͷϊϦ͕௨͡Δ ɹɹɹɹɹ⾪ ɹɹTWHKTͱ͍͏ศརͳϥΠϒϥϦ ɹɹɹɹɹ⾫ ࠲ඪυϦϒϯΘ͔Γ͍͢ ɹɹɹ⾪ ɹɹԿΑΓ͍ܰ ɹɹɹ⾫ ʊਓਓਓਓਓਓʊ
ʼɹఱ࠽͔Αɹʻ ʉ?:?:?:?:?ʉ
1. SVGΞχϝʔγϣϯ࡞ͬͯΔͳ͏ 2. SVGΞχϝʔγϣϯΛ࡞ΔϙΠϯτ 3. canvasͱൺͯΈΔ 4. ·ͱΊ ࠓͷΞδΣϯμ
SVGΞχϝʔγϣϯΛ࡞ΔϙΠϯτ ྑ͍ͱݴͬͯ Կ͕͍͍ͷ͔ʁ ͭ͋ΔΑʂ
SVGΞχϝʔγϣϯΛ࡞ΔϙΠϯτ 47(+4͕ศརʂ 47(+4ͱ͍͏ϥΠϒϥϦ͕͋ͬͯɺͦΕΛ͏ͱ DBOWBTฒʹ؆୯ʹ47(Λѻ͏͜ͱ͕Ͱ͖Δʂ
SVGΞχϝʔγϣϯΛ࡞ΔϙΠϯτ TWH47( TFMFDUPS TJ[F
SVGΞχϝʔγϣϯΛ࡞ΔϙΠϯτ TWH47( TFMFDUPS TJ[F b ඳը͢Δ47(Λઃఆ͢ΔͰʔ
SVGΞχϝʔγϣϯΛ࡞ΔϙΠϯτ TWH47( TFMFDUPS TJ[F b ඳը͢Δ47(Λઃఆ͢ΔͰʔ TWHQPMZHPO
SVGΞχϝʔγϣϯΛ࡞ΔϙΠϯτ TWH47( TFMFDUPS TJ[F b ඳը͢Δ47(Λઃఆ͢ΔͰʔ TWHQPMZHPO
ࡾ֯Ͱ͖ͪΌ͏ʜ
SVGΞχϝʔγϣϯΛ࡞ΔϙΠϯτ TWH47( TFMFDUPS TJ[F b ඳը͢Δ47(Λઃఆ͢ΔͰʔ TWHQPMZHPO
ࡾ֯Ͱ͖ͪΌ͏ʜ TWHSFDU
SVGΞχϝʔγϣϯΛ࡞ΔϙΠϯτ TWH47( TFMFDUPS TJ[F b ඳը͢Δ47(Λઃఆ͢ΔͰʔ TWHQPMZHPO
ࡾ֯Ͱ͖ͪΌ͏ʜ TWHSFDU ࢛֯Ͱ͖ͪΌ͏ʜQYQYͷʜ
SVGΞχϝʔγϣϯΛ࡞ΔϙΠϯτ TWH47( TFMFDUPS TJ[F b ඳը͢Δ47(Λઃఆ͢ΔͰʔ TWHQPMZHPO
ࡾ֯Ͱ͖ͪΌ͏ʜ TWHSFDU ࢛֯Ͱ͖ͪΌ͏ʜQYQYͷʜ TWHSFDU Y Z pMM b⒎⒎⒎` TUZMF bPQBDJUZ`
SVGΞχϝʔγϣϯΛ࡞ΔϙΠϯτ TWH47( TFMFDUPS TJ[F b ඳը͢Δ47(Λઃఆ͢ΔͰʔ TWHQPMZHPO
ࡾ֯Ͱ͖ͪΌ͏ʜ TWHSFDU ࢛֯Ͱ͖ͪΌ͏ʜQYQYͷʜ TWHSFDU Y Z pMM b⒎⒎⒎` TUZMF bPQBDJUZ` QYਖ਼ํܗ͔ͭ࠲ඪ͕ Ͱಁ໌ͳ࢛͕֯Ͱ͖Δ
SVGΞχϝʔγϣϯΛ࡞ΔϙΠϯτ ͪΖΜఆٛϑΝΠϧ͋ΔͷͰ 5ZQFTDSJQU͔͚ΔΑ
SVGΞχϝʔγϣϯΛ࡞ΔϙΠϯτ
SVGΞχϝʔγϣϯΛ࡞ΔϙΠϯτ ΠϥϨͷਤܗΛͦͷ··͑Δʂ *MMVTUSBUPSͰਤܗΛ࡞ͬͯ47(Ͱอଘ͢Εɺ ෳࡶͳਤܗ1PMZHPOܗࣜʹͳΔͷͰ͍͍͢ʂ
SVGΞχϝʔγϣϯΛ࡞ΔϙΠϯτ ΠϥϨͷਤܗΛͦͷ··͑Δʂ *MMVTUSBUPSͰਤܗΛ࡞ͬͯ47(Ͱอଘ͢Εɺ ෳࡶͳਤܗ1PMZHPOܗࣜʹͳΔͷͰ͍͍͢ʂ ͨͩ͠ɺɺ
SVGΞχϝʔγϣϯΛ࡞ΔϙΠϯτ ಈతʹ࡞Δ߹ ࠲ඪΛྻͰ࣋ͭͷͰਏ͍
SVGΞχϝʔγϣϯΛ࡞ΔϙΠϯτ ॻ͖ग़࣌͠ҙ 47(ॻ͖ग़࣌͠ʹ࠲ඪͷ খͷܻΛ૿ͯ͠ ͓͔ͳ͍ͱ൵͘͠ͳΔ
SVGΞχϝʔγϣϯΛ࡞ΔϙΠϯτ খΛ૿͞ͳ͍ͱ͜͏ͳΔΑ σϞ
SVGΞχϝʔγϣϯΛ࡞ΔϙΠϯτ খΛ૿͢ͱ͜͏ͳΔΑ σϞ
SVGΞχϝʔγϣϯΛ࡞ΔϙΠϯτ ૿ͯ͠ղܾ͠ͳ͍͜ͱ͋Δ
SVGΞχϝʔγϣϯΛ࡞ΔϙΠϯτ ͦ͏͍͏࣌*MMVTUSBUPSΈ͍ͨʹ ઢΛ͚ͭͯղܾ͢Δͱૣ͍ʜ TUZMF TUSPLF ⒎⒎⒎ TUZMF TUSPLFXJEUI
SVGΞχϝʔγϣϯΛ࡞ΔϙΠϯτ Ξχϝʔγϣϯ؆୯ʂ TWH@FMFNFOU BOJNBUF EVSBUJPO FBTJOH EFMBZ NPWF Y
Z ͜Ε͚ͩͰ͵Δ͵Δͬͱಈ͍ͪΌ͏ʜ
SVGΞχϝʔγϣϯΛ࡞ΔϙΠϯτ Ξχϝʔγϣϯ؆୯ʂ TWH@FMFNFOU BOJNBUF EVSBUJPO FBTJOH EFMBZ NPWF Y
Z ͜Ε͚ͩͰ͵Δ͵Δͬͱಈ͍ͪΌ͏ʜ ͔͠ɺɺ
SVGΞχϝʔγϣϯΛ࡞ΔϙΠϯτ ϨεϙϯγϒʹͰ͖ͪΌ͏ʂ *MMVTUSBUPSͷάϧʔϓԽͷΑ͏ʹɺ ΞχϝʔγϣϯΛHͰғͬͯάϧʔϓԽ͢Εɺ άϧʔϓશମΛTDBMFϝιουͰ֦େͰ͖ΔͷͰɺ DBOWBTͱҧͬͯɺࡉ͔͍ௐΛ͠ͳ͍͍ͯ͘ʂ
SVGΞχϝʔγϣϯΛ࡞ΔϙΠϯτ
SVGΞχϝʔγϣϯΛ࡞ΔϙΠϯτ 1. SVG.JS͕ศརʂ 2. ΠϥϨͷਤܗͦͷ··͑Δʂ 3. Ξχϝʔγϣϯ͕؆୯ʂ ·ͱΊ
SVGΞχϝʔγϣϯΛ࡞ΔϙΠϯτ 1. SVG.JS͕ศརʂ 2. ΠϥϨͷਤܗͦͷ··͑Δʂ 3. Ξχϝʔγϣϯ͕؆୯ʂ ·ͱΊ ͱ͍͑ࠓճ*O5)&OFUͷϩΰͱ 47(Ξχϝʔγϣϯͷ૬ੑ͕
Α͔ͬͨײ͕ڧ͍ͷͰࢀߟ·Ͱʹʂ
1. SVGΞχϝʔγϣϯ࡞ͬͯΔͳ͏ 2. SVGΞχϝʔγϣϯΛ࡞ΔϙΠϯτ 3. canvasͱൺͯΈΔ 4. ·ͱΊ ࠓͷΞδΣϯμ
canvasͱൺͯΈΔ
canvasͱൺͯΈΔ DBOWBTॻ͍ͨ͜ͱ ͳ͔ͬͨʜ
canvasͱൺͯΈΔ ͰൺͯΈΔ w ϙΠϯτΛࢦఆͯ͠ΦϒδΣΫτ͕ඳըͰ͖Δ w $44Ͱมߋ͕Մೳ w ͭͷ1PMZHPOɺ3FDUɺ1BUI͕%0.ཁૉ w ֦େ͕؆୯ʢஔҐஔཁ੍ޚʣ
ϝϦοτ w ΦϒδΣΫτ͕ͭͣͭ%0.ʹͳΔͷͰɺΦϒ δΣΫτ͕૿͑Δͱॏͦ͏ σϝϦοτ
1. SVGΞχϝʔγϣϯ࡞ͬͯΔͳ͏ 2. SVGΞχϝʔγϣϯΛ࡞ΔϙΠϯτ 3. canvasͱൺͯΈΔ 4. ·ͱΊ ࠓͷΞδΣϯμ
·ͱΊ IllustratorϊϦͰͰ͖ΔͷͰ ෑډָ͕͍͍͠͠Αʙʂ օͰSVGΞχϝʔγϣϯ͠Α͏ʂ Sin! Cos! Tan!
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠