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
Firefox OSでSVGをつかってみた
Search
kadoppe
November 23, 2013
Technology
0
100
Firefox OSでSVGをつかってみた
2013/11/23 に開催された「関西Firefox OS勉強会 5th GIG」で使ったプレゼンスライドです。
kadoppe
November 23, 2013
Tweet
Share
More Decks by kadoppe
See All by kadoppe
一年間スタートアップのCTOをやってきて学んだこと
kadoppe
1
720
未知の顧客にとっても価値あるプロダクトを生み出す
kadoppe
2
1.7k
プレイド開発チームにおけるチーム・ジャーニー ver.202010
kadoppe
4
950
不確実性の高い世界のなかで、非連続な成長を生み出す / Developers Summit 2020 Summer
kadoppe
1
1.8k
プレイド開発チームにおけるチーム・ジャーニー
kadoppe
12
5.7k
プレイドのエンジニアからみた「正しいものを正しくつくる」
kadoppe
0
2k
フラット型組織におけるエンジニアリングマネジメント
kadoppe
1
1.3k
Pebble + JavaScriptでつくるスマートウォッチ
kadoppe
0
200
まだ間に合うHTML5 - Yeomanで追いつけ!高速Webアプリ開発
kadoppe
0
140
Other Decks in Technology
See All in Technology
Road to Single Activity
yurihondo
2
240
ロリポップ! for Gamersを支えるインフラ/lolipop for gamers infrastructure
takumakume
0
130
『GRANBLUE FANTASY: Relink』最高の「没入感」を実現するカットシーン制作手法とそれを支える技術
cygames
1
140
ナレッジグラフとLLMの相互利用
koujikozaki
0
420
GC24 Recap: Interface Internals
task4233
0
140
プロダクトエンジニアを支えるための開発生産性向上施策
tsukakei
0
140
アプリをリリースできる状態に保ったまま 段階的にリファクタリングするための 戦略と戦術 / Strategies and tactics for incremental refactoring
yanzm
6
1.4k
20240912 JJUGナイトセミナー
mii1004
0
140
可視化により内部品質をあげるAIドキュメントリバース/20240910 Hiromitsu Akiba
shift_evolve
0
220
グイグイ系QAマネージャーの仕事
sadonosake
0
340
Fediverse Discovery Providers overview
andypiper
0
170
Privacy Sandbox on Android / DroidKaigi 2024
7pairs
1
270
Featured
See All Featured
It's Worth the Effort
3n
182
27k
Building Applications with DynamoDB
mza
90
6k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
123
18k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Navigating Team Friction
lara
183
13k
Designing on Purpose - Digital PM Summit 2013
jponch
114
6.8k
Making the Leap to Tech Lead
cromwellryan
128
8.8k
How To Stay Up To Date on Web Technology
chriscoyier
786
250k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
230
17k
Clear Off the Table
cherdarchuk
91
320k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
89
16k
The Cult of Friendly URLs
andyhume
76
6k
Transcript
'JSFGPY04Ͱ 47(Λ͔ͭͬͯΈͨ ؔ'JSFGPY04ษڧձ!LBEPQQF
ࣗݾհ • ໊લ • ߃ฏ!LBEPQQF • ৬ۀ • ιϑτΣΞΤϯδχΞ •
3VCZ $P⒎FFc+BWB 4DSJQU0CKFDUJWF$ • ॴଐ • גࣜձࣾγΣΞΟζ)5.-8&45KQ
ຊͷεϥΠυ • εϥΠυ • IUUQXXXTMJEFTIBSFOFULBEPQQF • αϯϓϧίʔυ • IUUQTHJUIVCDPNLBEPQQFLBOTBJ pSFGPYPTUI
ΞδΣϯμ • 47(ͬͯͳΜͩΖ͏ • 'JSFGPY04Ͱ47(Λ͔ͭͬͯΈͨ • 'JSFGPYͰൃੜͨ͠τϥϒϧͷݕূ
47(ͬͯͳΜͩΖ͏
47(ͱ • 44DBMBCMFʢ֦େՄೳͳʣ • 77FDUPSʢϕΫλʔܗࣜͷʣ • ((SBQIJDʢը૾ʣ • ༁͢Δͱʮ֦େՄೳͳϕΫλʔը૾ʯ
ಛ֦େɾॖখ͖ͯ͠Ε͍ Ͱը૾Λදݱ ઢͰը૾Λදݱ
ಛ9.-ܗࣜͷϑΥʔϚοτ • 9.-ཁૉͰԁઢͳͲͷܗΛදݱ • ςΩετΤσΟλͰฤूՄೳ
47(ͷ͍ํ <img src=“sample.svg”> imgཁૉΛ͏
47(ͷ͍ํ .button {! background-image: url(“sample.svg”);! } $44Ͱ͏
47(ͷ͍ํ <html>! <body>! <h1>Inline SVGαϯϓϧ</h1>! <svg width=100 height=100>! <circle
r=50 cx=50 cy=50 />! </svg>! </body>! </html> svgཁૉΛ͏ *OMJOF47(
*OMJOF47(ͷϝϦοτ • ը૾ͷݟͨΛ$44Ͱมߋ • ԁͷ৭ɺઢͷଠ͞Λม͑ΔɺͳͲ • +BWB4DSJQUͰը૾Λૢ࡞Πϕϯτॲཧ • ಈతͳը૾ੜ •
ϚεΫϦοΫɺυϥοάͳͲͷΠϕϯτ
47(ͷ׆༻ࣄྫ • ׆༻ྫ̍ • ϩΰΞΠίϯը૾ • ׆༻ྫ̎ • ΠϯλϥΫςΟϒͳ8FCΞϓϦέʔγϣϯ
ϩΰΞΠίϯը૾
ϩΰΞΠίϯը૾
8FCΞϓϦέʔγϣϯ ແྉֶशαΠτ4IBSF8JTIUUQTIBSFXJTDPN
'JSFGPY04Ͱ 47(Λ͔ͭͬͯΈͨ
αϯϓϧΞϓϦΛެ։ 'JSFGPY04ͷϒϥβͰ IUUQBQQLBEPQQFDPNʹΞΫηε
։ൃڥ • 'JSFGPY ݱࡏ#FUB • 'JSFGPY044JNVMBUPS • ZFPNBO HFOFSBUPSpSFGPYPT
• ΞϓϦͷͻͳܗ࡞ʹ༷
݁ɿ 'JSFGPYͱಉ͡Α͏ʹ͑Δ
JNHཁૉΛͬͨαϯϓϧ • αϯϓϧίʔυ IUNMJNH@FMFNFOUIUNM
*OMJOF47(Λͬͨαϯϓϧ • αϯϓϧίʔυ IUNMTWH@FMFNFOUIUNM
%KT • 8FC্ͰσʔλϏδϡΞϥΠθʔγϣϯ Λ࡞͢ΔͨΊͷϥΠϒϥϦ IUUQEKTPSH • 47(Λσʔλͷදݱʹར༻
None
%KTΛͬͨαϯϓϧ • αϯϓϧίʔυ IUNMEIUNM KTE@TBNQMFKT • 'PVSTRVBSFͷ༑ୡؔΛ ՄࢹԽ • ੨ɿஉੑ
• ɿঁੑ
4OBQTWH • 47(Λ+BWB4DSJQU͔Β؆୯ʹѻ͏ͨΊ ϥΠϒϥϦ • ಈతͳը૾ͷੜ • ΞχϝʔγϣϯΠϕϯτϋϯυϦϯά • "EPCFͷΦʔϓϯιʔεϓϩδΣΫτ
IUUQTOBQTWHJP
None
4OBQTWHΛͬͨαϯϓϧ • αϯϓϧίʔυ IUNMTOBQIUNM KTTOBQ@TBNQMFKT • ϘλϯλοϓͰԁ͕૿͑Δ • ԁ͕ϥϯμϜʹಈ͖ଓ͚Δ •
Կݸ·ͰεϜʔζʹಈ͘ʁ
'JSFGPYͰൃੜͨ͠ τϥϒϧͷݕূ
'JSFGPY04Ͱ ಉ͡Α͏ʹൃੜ͢Δͷ͔ௐͯΈͨ
UFYUEFDPSBUJPOଐੑ <svg witdh=100 height=100>! <text text-decoration=underline x=0 y=20>Hello World</text>! </svg>
'JSFGPYҎԼ ͦͷଞϒϥβ Լઢ͕දࣔ͞ΕΔ Լઢ͕දࣔ͞Εͳ͍
'JSFGPY04Ͱ Լઢ͕දࣔ͞ΕΔ
HFU##PY var textElm = document.getElementById('text'); var box = textElm.getBBox(); !
alert(box.height); // textཁૉͷߴ͞ alert(box.width); // textཁૉͷ෯ ཁૉͷେ͖͞Λऔಘ͢ΔͨΊͷ"1*
'JSFGPYͰ // display: none ͳͲͰඇදࣔʹͳ͍ͬͯΔཁૉΛऔಘ var hiddenElm = document.getElementById('hidden'); var
box = hiddenElm.getBBox(); ! ྫ֎l/4@&3303@'"*-63&z͕ൃੜ
/4@&3303@'"*-63& ҙຯ ʮͳΜ͔Τϥʔʯ
/4@&3303@'"*-63& 23 /* Returned when a function fails */ 24
ERROR(NS_ERROR_FAILURE, 0x80004005), NP[JMMBYQDPNCBTF&SSPS-JTUI ԿΒ͔ͷݪҼͰؔͷ࣮ߦ͕ࣦഊͨ࣌͠ͷΤϥʔ
ͪͳΈʹ$ISPNFͩͱ // display: none ͳͲͰඇදࣔʹͳ͍ͬͯΔཁૉΛऔಘ var hiddenElm = document.getElementById('hidden'); var
box = hiddenElm.getBBox(); ! alert(box.height); // 0 alert(box.width); // 0 ͪΌΜͱzz͕ग़ྗ͞ΕΔ
'JSFGPY04Ͱ /4@&3303@'"*-63&
ରॲํ๏USZDBUDI // display: none ͳͲͰඇදࣔʹͳ͍ͬͯΔཁૉΛऔಘ var hiddenElm = document.getElementById('hidden'); try
{ var box = hiddenElm.getBBox(); ! alert(box.height); // 0 alert(box.width); // 0 } catch (e) { // NS_ERROR_FAILUREൃੜ࣌ͷॲཧ }
։ൃऀπʔϧͷΠϯεϖΫλ )5.-ཁૉΛબͨ͠߹ 47(ͷཁૉΛબͨ͠߹ ϧʔϧʹద༻͞Ε͍ͯΔελΠϧ͕දࣔ͞ΕΔ ϧʔϧʹద༻͞Ε͍ͯΔελΠϧ͕දࣔ͞Εͳ͍
$ISPNFͰ ͪΌΜͱදࣔ͞ΕΔ
'JSFGPY04Ͱ ͬͺΓදࣔ͞Εͳ͍
σόοά͠ʹ͍͘ ɾТɾʆ
ରॲํ๏ lܭࢉࡁΈzͱʜ ελΠϧΤσΟλͰؤுΔ
·ͱΊ • 'JSFGPY04 47( • ྑ͘ѱ͘'JSFGPYͱಉ͡Α͏ʹ͑Δ • ύϑΥʔϚϯε • ࣮ػ͕ͳ͍ͷͰݕূͰ͖ͳ͔ͬͨ
͓͠·͍