Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
DeNA_open_events
PDF, PPTX
1,133 views
0406web creators night_DeNA
April 6th, 2012. Web Creators night presentation.
Technology
◦
Read more
2
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 21
2
/ 21
3
/ 21
4
/ 21
5
/ 21
6
/ 21
7
/ 21
8
/ 21
9
/ 21
10
/ 21
11
/ 21
12
/ 21
13
/ 21
14
/ 21
15
/ 21
16
/ 21
17
/ 21
18
/ 21
19
/ 21
20
/ 21
21
/ 21
More Related Content
PDF
Vue.jsの関連ツール・ライブラリ(Vuex, Vue-Router, Nuxt)
by
Kei Yagi
PDF
はじめてのVue.js
by
Kei Yagi
PPTX
Web Component概要
by
Shumpei Shiraishi
PDF
Vue.js 基礎 + Vue CLI の使い方
by
Kei Yagi
PDF
jQuery Mobile 1.3 最新情報
by
yoshikawa_t
PDF
プロダクトに 1 から Vue.js を導入した話
by
Shohei Okada
PDF
jQuery Mobile 1.2 最新情報 & Tips
by
yoshikawa_t
PDF
Nuxt なしで Vue App 作る時に乗り越えるべき5つの壁
by
Yutaro Miyazaki
Vue.jsの関連ツール・ライブラリ(Vuex, Vue-Router, Nuxt)
by
Kei Yagi
はじめてのVue.js
by
Kei Yagi
Web Component概要
by
Shumpei Shiraishi
Vue.js 基礎 + Vue CLI の使い方
by
Kei Yagi
jQuery Mobile 1.3 最新情報
by
yoshikawa_t
プロダクトに 1 から Vue.js を導入した話
by
Shohei Okada
jQuery Mobile 1.2 最新情報 & Tips
by
yoshikawa_t
Nuxt なしで Vue App 作る時に乗り越えるべき5つの壁
by
Yutaro Miyazaki
What's hot
PDF
Vue Router + Vuex
by
Kei Yagi
PDF
I phoneアプリ入門 第3回
by
Sachiko Kajishima
PDF
DOM Scripting & jQuery
by
smallworkshop
PDF
Form libraries
by
Atsushi Odagiri
KEY
Google App Engine for Java
by
Takuya Tsuchida
PDF
Componentization with Gilgamesh
by
Yusuke Goto
PDF
node+socket.io+enchant.jsでチャットゲーを作る
by
Kiyoshi SATOH
PDF
jQuery Mobile 最新情報 & Tips
by
yoshikawa_t
PDF
Knocked out in knockout js
by
Hiroyuki Tashima
Vue Router + Vuex
by
Kei Yagi
I phoneアプリ入門 第3回
by
Sachiko Kajishima
DOM Scripting & jQuery
by
smallworkshop
Form libraries
by
Atsushi Odagiri
Google App Engine for Java
by
Takuya Tsuchida
Componentization with Gilgamesh
by
Yusuke Goto
node+socket.io+enchant.jsでチャットゲーを作る
by
Kiyoshi SATOH
jQuery Mobile 最新情報 & Tips
by
yoshikawa_t
Knocked out in knockout js
by
Hiroyuki Tashima
Viewers also liked
PDF
Daily Newsletter: 17th May, 2011
by
Fullerton Securities
DOC
9 icms instructions_for_authors
by
a2shafi
PDF
Tracxn Research — Online Photos Landscape, October 2016
by
Tracxn
TXT
인천펜션 노보텔호텔
by
jdhfrter
PDF
IAFE Zone 3/6 - New Digital Priorities: Trends in Digital Marketing
by
Saffire
PPT
Introducción a la biotecnología
by
bkt_6
PPTX
Sånn akkurat passe mye arkitektur
by
Vegard Hartmann
PDF
Comentarios de Piedad Córdoba a columna de Vladdo
by
Poder Ciudadano
PPT
Impacto De Las Tics En La Cultura De La Mediacion A Distancia Para La Educaci...
by
GUILLERMO MOLINA JARA
PDF
Online marketing and distribution
by
Việt Long Plaza
PDF
AcreditacióN 9 SesióN
by
Elizabeth Huisa Veria
PPTX
Dynamics CRM 2013 Customization and Configuration
by
Satish
PPTX
B100 board presentation
by
rjoana
Daily Newsletter: 17th May, 2011
by
Fullerton Securities
9 icms instructions_for_authors
by
a2shafi
Tracxn Research — Online Photos Landscape, October 2016
by
Tracxn
인천펜션 노보텔호텔
by
jdhfrter
IAFE Zone 3/6 - New Digital Priorities: Trends in Digital Marketing
by
Saffire
Introducción a la biotecnología
by
bkt_6
Sånn akkurat passe mye arkitektur
by
Vegard Hartmann
Comentarios de Piedad Córdoba a columna de Vladdo
by
Poder Ciudadano
Impacto De Las Tics En La Cultura De La Mediacion A Distancia Para La Educaci...
by
GUILLERMO MOLINA JARA
Online marketing and distribution
by
Việt Long Plaza
AcreditacióN 9 SesióN
by
Elizabeth Huisa Veria
Dynamics CRM 2013 Customization and Configuration
by
Satish
B100 board presentation
by
rjoana
Similar to 0406web creators night_DeNA
PDF
CSS Design and Programming
by
Taku AMANO
PDF
jQuery Mobile(開発編)勉強会資料
by
Nobumasa Ura
PDF
Jqm20120210
by
cmtomoda
PDF
jQueryでiTunes Store風スライドショーを作ってみる
by
Yasuhito Yabe
PDF
jQuery MobileとPhoneGapでスマートフォンアプリ楽々クッキング
by
Takashi Okamoto
PDF
Jqm20120804 publish
by
Takashi Okamoto
PDF
2012年8月10日 勉強会
by
Rin Yano
PDF
レスポンシブWebデザイン【発展編】
by
Yasuhito Yabe
PDF
20110714 j queryベーシック
by
良太 増子
PDF
Webデザイン入門2-HTML5 フォーム,映像再生,音声再生, CSS3, レスポンシブWebデザイン-
by
Yossy Taka
KEY
Webapp startup example_to_dolist
by
Shinichiro Kumeuchi
PDF
Webフロントエンド開発の最新トレンド - HTML5, モバイル, オフライン
by
Shumpei Shiraishi
PDF
jQuery Mobileの基礎
by
Takashi Okamoto
PDF
jQuery Mobileカスタマイズ自由自在
by
yoshikawa_t
PDF
マルチデバイス対応のコーディング・マークアップのポイント
by
Masayuki Maekawa
PDF
Web development fundamental
by
Takuya Kumagai
PPTX
jQuery Mobile入門
by
Shumpei Shiraishi
PDF
jQuery Performance Tips – jQueryにおける高速化 -
by
Hayato Mizuno
PDF
Ajax basic
by
Katsuyuki Seino
PDF
jQuery Mobileカスタマイズ自由自在 v1.2
by
yoshikawa_t
CSS Design and Programming
by
Taku AMANO
jQuery Mobile(開発編)勉強会資料
by
Nobumasa Ura
Jqm20120210
by
cmtomoda
jQueryでiTunes Store風スライドショーを作ってみる
by
Yasuhito Yabe
jQuery MobileとPhoneGapでスマートフォンアプリ楽々クッキング
by
Takashi Okamoto
Jqm20120804 publish
by
Takashi Okamoto
2012年8月10日 勉強会
by
Rin Yano
レスポンシブWebデザイン【発展編】
by
Yasuhito Yabe
20110714 j queryベーシック
by
良太 増子
Webデザイン入門2-HTML5 フォーム,映像再生,音声再生, CSS3, レスポンシブWebデザイン-
by
Yossy Taka
Webapp startup example_to_dolist
by
Shinichiro Kumeuchi
Webフロントエンド開発の最新トレンド - HTML5, モバイル, オフライン
by
Shumpei Shiraishi
jQuery Mobileの基礎
by
Takashi Okamoto
jQuery Mobileカスタマイズ自由自在
by
yoshikawa_t
マルチデバイス対応のコーディング・マークアップのポイント
by
Masayuki Maekawa
Web development fundamental
by
Takuya Kumagai
jQuery Mobile入門
by
Shumpei Shiraishi
jQuery Performance Tips – jQueryにおける高速化 -
by
Hayato Mizuno
Ajax basic
by
Katsuyuki Seino
jQuery Mobileカスタマイズ自由自在 v1.2
by
yoshikawa_t
Recently uploaded
PDF
TomokaEdakawa_職種と講義の関係推定に基づく履修支援システムの基礎検討_HCI2026
by
Matsushita Laboratory
PDF
maisugimoto_曖昧さを含む仕様書の改善を目的としたアノテーション支援ツールの検討_HCI2025.pdf
by
Matsushita Laboratory
PDF
自転車ユーザ参加型路面画像センシングによる点字ブロック検出における性能向上方法の模索 (20260123 SeMI研)
by
Yuto Matsuda
PDF
アジャイル導入が止まる3つの壁 ─ 文化・他部門・組織プロセスをどう乗り越えるか
by
Graat(グラーツ)
PDF
Team Topology Adaptive Organizational Design for Rapid Delivery of Valuable S...
by
akipii ogaoga
PDF
ST2024_PM1_2_Case_study_of_local_newspaper_company.pdf
by
akipii ogaoga
PDF
20260119_VIoTLT_vol22_kitazaki_v1___.pdf
by
Ayachika Kitazaki
TomokaEdakawa_職種と講義の関係推定に基づく履修支援システムの基礎検討_HCI2026
by
Matsushita Laboratory
maisugimoto_曖昧さを含む仕様書の改善を目的としたアノテーション支援ツールの検討_HCI2025.pdf
by
Matsushita Laboratory
自転車ユーザ参加型路面画像センシングによる点字ブロック検出における性能向上方法の模索 (20260123 SeMI研)
by
Yuto Matsuda
アジャイル導入が止まる3つの壁 ─ 文化・他部門・組織プロセスをどう乗り越えるか
by
Graat(グラーツ)
Team Topology Adaptive Organizational Design for Rapid Delivery of Valuable S...
by
akipii ogaoga
ST2024_PM1_2_Case_study_of_local_newspaper_company.pdf
by
akipii ogaoga
20260119_VIoTLT_vol22_kitazaki_v1___.pdf
by
Ayachika Kitazaki
0406web creators night_DeNA
1.
HTML/CSS/JSの役割分担
Creative group 1
2.
⾃自⼰己紹介 草間 正則 (くさま まさのり)
12.4.9 株式会社ディー・エヌ・エー ソーシャルゲーム事業本部 ソーシャルゲーム統括部 SPWebUXグループ フロントエンドエンジニア ソーシャルゲームサイトのフロントの設計・コーディングを担当してます。 2
3.
impress.js
12.4.9 最近はプレゼン⽤用ライブラリとかいっぱいあっていいですね。 特にimpress.jsとか表現幅が広くてすごいですね。 でもHTML書くのは⾯面倒くさいのでパワポで。 3
4.
本題 • 本⽇日は、プレゼン⽤用ライブラリについてではなく、
「HTML/CSS/JSの役割分担」についてお話ししたいと思い 12.4.9 ます。 • 役割分担を明確にして、JSのコード内にHTML/CSSは極⼒力力 含めないようにし、JSを変更せずにメンテナンスできた らみんなハッピーですね。 • ソーシャルゲームはWebクリエイターの⼒力力でより進化で きるはずです。 • 最近の事例を、コード中⼼心になりますが、お話しさせて 頂きます。 4
5.
ところで… • A.ページ内にモーダルウィンドウを表⽰示する場合ど
うしますか? 12.4.9 var modal = document.getElementById(ʻ‘modalʼ’); modal.style.display = 'block';// 表⽰示 modal.style.display = 'none';// ⾮非表⽰示 5
6.
ところで…. • B.モーダルウィンドウ内の表⽰示が変わる場合どうし
ますか?(e.g. 選択→確認→完了) 12.4.9 var select = document.getElementById('select'); var confirm = document.getElementById('confirm'); var complete = document.getElementById('complete'); // 確認 select.style.display = 'none'; confirm.style.display = 'block'; // 完了 confirm.style.display = 'none'; complete.style.display = 'block'; 6
7.
ところで….. • C.モーダルウィンドウ内に複数ボタンがあって、そ
れぞれ違う役割があったらどうしますか? 12.4.9 var button1 = document.getElementById('button1'); var button2 = document.getElementById('button2'); var button3 = document.getElementById('button3'); button1.addEventListener('click', func1, false); button2.addEventListener('click', func2, false); button3.addEventListener('click', func3, false); 7
8.
ところで…… • 1、2個ならさほど問題ではないですが、いっぱい
ボタンがあったら・・・、いっぱいモーダルウィン 12.4.9 ドウがあったら・・・どうでしょう? • こういう書き⽅方では汎⽤用性や拡張性に⽋欠けますよ ね? HTMLで出来る事はHTMLに、 CSSで出来る事はCSSに 任せてしまいましょう! 8
9.
具体的には… • AやBのような表⽰示・⾮非表⽰示を切り替えるようなもの
は、それぞれをシーンととらえて、シーンを定義し 12.4.9 たスタイル(CSSクラス)を⽤用意し、要素のクラス名 を制御したらどうでしょう? こんなHTMLがあったとして <div id="container"> <div class= modal >モーダルウィンドウ</div> </div> 9
10.
具体的には…. [A]
12.4.9 HTML: <div id="container" class="scene-modal"> <div class= modal >モーダルウィンドウ</div> </div> CSS: .modal {display: none;} .scene-modal .modal {display: block;} JS: var container = document.getElementById('container'); container.className = 'scene-modal';// 表⽰示 container.className = '';// ⾮非表⽰示 // ちなみにAndroidではclassListが使えないので、classNameを書き換える 10
11.
具体的には….. [B]
[B] HTML: CSS: 12.4.9 <div id="modal class= scene-select > .select, <div class= select >選択</div> .confirm, <div class= confirm >確認</div> .complete { <div class= complete >完了</div> display: none; </div> } ↓ <div id="modal" class="scene-confirm"> .scene-select .select, <div class= select >選択</div> .scene-confirm .confirm, <div class= confirm >確認</div> .scene-complete .complete { <div class= complete >完了</div> display: block; </div> } 11
12.
具体的には…… • CSSに任せると表⽰示⽅方法の変更も簡単ですね。
12.4.9 • 例えばアニメーションさせたければ… [A]CSS: .modal { position: absolute; left: -320px; -webkit-transition-property: -webkit-transform; -webkit-transition-duration: 0.2s; } .scene-modal .modal { -webkit-transform: translate3d(320px, 0, 0); } 12
13.
具体的には…….. • Cはボタンにメソッド名と対応した役割を与えてみます。
12.4.9 • 独⾃自データ属性「data-‐」を使うとスマートですね。 こんなHTMLがあったとして <button data-role="confirm">確認</button> <button data-role="submit">購⼊入</button> <button data-role="cancel">キャンセル</button> <button data-role="close">閉じる</button> <button data-role="back">戻る</button> 13
14.
具体的には......... var elements
= document.querySelectorAll('[data-role]'); 12.4.9 for (var i = 0, len = elements.length; i < len; i++) { var role = elements[i].getAttribute('data-role'); // ちなみにAndroidではdatasetが使えないので、getAttributeを使う elements[i].addEventListener('click', methods[role], false); } var methods = { confirm: function() {}, submit: function() {}, cancel: function() {}, close: function() {}, back: function() {} }; 実際に実装する場合は、jQueryやriddle.js等のdelegateを使うとスマート。 delegateはイベント移譲メソッドです。後ほど出てきます。 14
15.
さらに… • 複数のボタンとそれぞれのボタンに対応した複数の
モーダルウィンドウがあったらどうしますか? 12.4.9 var button1 = document.getElementById('button1'); var button2 = document.getElementById('button2'); var modal1 = document.getElementById('modal1'); var modal2 = document.getElementById('modal2'); button1.addEventListener('click', function() { modal1.style.display = 'block'; }, false); button2.addEventListener('click', function() { modal2.style.display = 'block'; }, false); 15
16.
さらに…. • 100個のボタンとモーダルウィンドウがあったらどうしますか?
12.4.9 • 100回コピペしますか?100回ループしますか? ここまでちゃんと聞いて下さった⽅方ならもうお分かりですね? CSSクラス変更とdelegate使えばいいんじゃね? 16
17.
さらに….. HTML: <div
id="container"> 12.4.9 <button data-target-scene="scene-modal1">ボタン1</button> <button data-target-scene="scene-modal2">ボタン2</button> <div class= modal1 >モーダルウィンドウ1</div> <div class= modal2 >モーダルウィンドウ2</div> </div> CSS: .modal1, .modal2 {display: none;} .scene-modal1 .modal1, .scene-modal2 .modal2 {display: block;} 17
18.
さらに…... JS: riddle.jsで書くと
12.4.9 // IDがcontainerの要素を取得(配列) var container = r.id('container'); // data-target-scene属性を持った要素のclickイベントをdocument.bodyに移譲 r(document.body).delegate(ʻ‘[data-target-scene]', 'click', function() { container.addClass(r(this).attr(ʻ‘data-target-scene')); }); なんということでしょう。たったこれだけのコードで実装出来るなんて。 これで何個ボタンがあっても、後からボタンが追加されても⼤大丈夫。 ジェッタシーなコードですね。 18
19.
まとめ • HTMLにデータを持たせ、CSSで表⽰示の仕⽅方を制御し
て、JSはシンプルに。 12.4.9 • HTML/CSS/JSの役割分担をきちんとすることで、⾒見見通 しも良くなり、マークアップとスクリプトの分離も 出来、HTML/CSSとJSのコーディングが別々の⼈人が担 当しても混乱が少なくなる。 • ちょっとした変更でJSをいじる必要もなくなります。 19
20.
まとめ2 • スマートフォンはフィーチャーフォンとPCの丁度中
間のような位置にありながら、最新技術にも対応し 12.4.9 ていたりと、様々なWebのノウハウが詰まっている。 • クリエイター次第でソーシャルゲームはいかように も変貌を遂げることができる。 • 最新技術を追いかけつつも技術だけにとらわれず、 より良いUI/UXを構築できるといいですね。 20
21.
ご静聴ありがとうございました
12.4.9 本⽇日の内容にご興味を持たれた⽅方はぜひDeNAへ。 年齢・性別・国籍問わず、広く⾨門⼾戸を開いております。 ご質問はまたの機会に 21
Download