SlideShare uma empresa Scribd logo
1 de 19
Baixar para ler offline
jQuery勉強会#4


           2012/11/05
       丸山亮@h13i32maru
自己紹介

• 丸山 亮@h13i32maru
• JavaScript結構好きなプログラマー
• 今はPython少しずつ勉強中
• 焼鳥と牛たんが好物


         https://twitter.com/h13i32maru
今日はjQueryで動くもの
 を作ってみよう!!!
今日のゴール

• jQueryでGrowl風通知機能を作ってみよう
• GrowlとはMacでよく使われる通知アプリ
・文字を入力してOKを押すと通知が表示される
・おまけ:通知の色を選択できる
     (Warning, Success, Error, Info)
やること
1.HTML読み込み完了に処理(関数)を設定
2.OKボタンのクリックに処理(関数)を設定
3.入力されている文字を取得する
4.要素を動的に作成
5.要素にクラスとテキストを設定
6.通知領域に要素を追加する
7.1秒後に通知をフェードアウトする
8.フェードアウトが終わったら通知を削除する
HTMLを準備
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>Growl</title>
<link rel="stylesheet" type="text/css" href="bootstrap.min.css"/>
<link rel="stylesheet" type="text/css" href="style.css"/>
<script src="jquery-1.8.2.min.js"></script>
<script>
//ここに書いていく
</script>
</head>

<body>
<div id="content">
  <input id="message-text" type="text"/>
  <button id="ok-button" class="btn btn-inverse">OK</button>
  <div>
    <label class="radio inline"><input type="radio" name="color"    value="alert-warning" checked/>Warning</label>
    <label class="radio inline"><input type="radio" name="color"    value="alert-success"/>Success</label>
    <label class="radio inline"><input type="radio" name="color"    value="alert-error"/>Error</label>
    <label class="radio inline"><input type="radio" name="color"    value="alert-info"/>Info</label>
  </div>
</div>
<div id="growl"/>
</body>
</html>
HTML読み込み完了に処理を設定
<script>
//ここに書いていく
$(function(){
  alert('hello');
});
</script>
OKボタンのクリックに処理を設定
<script>
//ここに書いていく
$(function(){
  var addMessage = function(){
     alert('hello');
  };

  $('#ok-button').click(addMessage);
});
</script>
入力されている文字を取得
<script>
//ここに書いていく
$(function(){
  var addMessage = function(){
     var message = $('#message-text').val();
     alert(message);
  };

  $('#ok-button').click(addMessage);
});
</script>
要素を動的に作成
<script>
//ここに書いていく
$(function(){
  var addMessage = function(){
     var message = $('#message-text').val();
     var messageElement = $('<div />');
     alert(messageElement);
  };

  $('#ok-button').click(addMessage);
});
</script>
要素にクラスとテキストを設定
<script>
//ここに書いていく
$(function(){
  var addMessage = function(){
     var message = $('#message-text').val();
     var messageElement = $('<div />');
     messageElement.addClass('alert').text(message);
     alert(messageElement);
  };

  $('#ok-button').click(addMessage);
});
</script>
通知領域に要素を追加する
<script>
//ここに書いていく
$(function(){
  var addMessage = function(){
     var message = $('#message-text').val();
     var messageElement = $('<div />');
     messageElement.addClass('alert').text(message);
     $('#growl').append(messageElement);
     alert(messageElement);
  };

  $('#ok-button').click(addMessage);
});
</script>
1秒後に通知をフェードアウトする
<script>
//ここに書いていく
$(function(){
  var addMessage = function(){
     var message = $('#message-text').val();
     var messageElement = $('<div />');
     messageElement.addClass('alert').text(message);
     $('#growl').append(messageElement);
     messageElement.delay(1000).fadeOut(600);
     alert(messageElement);
  };

  $('#ok-button').click(addMessage);
});
</script>
フェードアウトが終わったら通知を削除する
<script>
//ここに書いていく
$(function(){
  var addMessage = function(){
     var message = $('#message-text').val();
     var messageElement = $('<div />');
     messageElement.addClass('alert').text(message);
     $('#growl').append(messageElement);
     messageElement.delay(1000).fadeOut(600, function(){
       $(this).remove();
     });
  };

  $('#ok-button').click(addMessage);
});
</script>
完成!!!
使ったもの(1)

• 関数 → JavaScriptの処理をまとめたもの
• $().click(myFunction) → クリックされたら関
 数myFunctionを実行

• $().val() → ユーザからの入力値を取得
• $( <div /> ) → div要素を作成
• $().addClass( hoge ) → クラスhogeを追加
• $().text( hello ) → テキストhelloを設定
使ったもの(2)

• $().append(element) → element要素を挿入
• $().delay(1000) → 1000ミリ秒後に実行
• $().fadeOut() → フェードアウトして非表示に
 する

• $().remove() → 親要素から削除
おわり

Mais conteúdo relacionado

Destaque

Prototypeベース in JavaScript
Prototypeベース in JavaScriptPrototypeベース in JavaScript
Prototypeベース in JavaScript
Ryo Maruyama
 
Google App EngineでTwitterアプリを作ろう
Google App EngineでTwitterアプリを作ろうGoogle App EngineでTwitterアプリを作ろう
Google App EngineでTwitterアプリを作ろう
kenji4569
 
断言して間違えると信頼度が低下するというベイズの話
断言して間違えると信頼度が低下するというベイズの話断言して間違えると信頼度が低下するというベイズの話
断言して間違えると信頼度が低下するというベイズの話
Junya Hayashi
 

Destaque (20)

Prototypeベース in JavaScript
Prototypeベース in JavaScriptPrototypeベース in JavaScript
Prototypeベース in JavaScript
 
ES6 はじめました
ES6 はじめましたES6 はじめました
ES6 はじめました
 
Getting started with ES6 : Future of javascript
Getting started with ES6 : Future of javascriptGetting started with ES6 : Future of javascript
Getting started with ES6 : Future of javascript
 
kontainer-js
kontainer-jskontainer-js
kontainer-js
 
ES6 - JavaCro 2016
ES6 - JavaCro 2016ES6 - JavaCro 2016
ES6 - JavaCro 2016
 
JavaScript 実践講座 Framework, Tool, Performance
JavaScript 実践講座 Framework, Tool, PerformanceJavaScript 実践講座 Framework, Tool, Performance
JavaScript 実践講座 Framework, Tool, Performance
 
JavaScript.Next Returns
JavaScript.Next ReturnsJavaScript.Next Returns
JavaScript.Next Returns
 
Startup JavaScript
Startup JavaScriptStartup JavaScript
Startup JavaScript
 
はじめてのWallaby.js
はじめてのWallaby.jsはじめてのWallaby.js
はじめてのWallaby.js
 
Google App EngineでTwitterアプリを作ろう
Google App EngineでTwitterアプリを作ろうGoogle App EngineでTwitterアプリを作ろう
Google App EngineでTwitterアプリを作ろう
 
ECMAScript 6 Features(PDF 版)
ECMAScript 6 Features(PDF 版)ECMAScript 6 Features(PDF 版)
ECMAScript 6 Features(PDF 版)
 
アニメーションの実装つらい話
アニメーションの実装つらい話アニメーションの実装つらい話
アニメーションの実装つらい話
 
Nds meetup8 lt
Nds meetup8 ltNds meetup8 lt
Nds meetup8 lt
 
Hello npm
Hello npmHello npm
Hello npm
 
断言して間違えると信頼度が低下するというベイズの話
断言して間違えると信頼度が低下するというベイズの話断言して間違えると信頼度が低下するというベイズの話
断言して間違えると信頼度が低下するというベイズの話
 
Bacon.jsではじめる関数型リアアクティブプログラミング入門 with ES6
Bacon.jsではじめる関数型リアアクティブプログラミング入門 with ES6Bacon.jsではじめる関数型リアアクティブプログラミング入門 with ES6
Bacon.jsではじめる関数型リアアクティブプログラミング入門 with ES6
 
Learn ES2015
Learn ES2015Learn ES2015
Learn ES2015
 
これからのJavaScriptの話
これからのJavaScriptの話これからのJavaScriptの話
これからのJavaScriptの話
 
これからのJavaScriptー関数型プログラミングとECMAScript6
これからのJavaScriptー関数型プログラミングとECMAScript6これからのJavaScriptー関数型プログラミングとECMAScript6
これからのJavaScriptー関数型プログラミングとECMAScript6
 
JavaScript(AngularJS・React.js)で作る iOS・Androidアプリハンズオン
JavaScript(AngularJS・React.js)で作る iOS・AndroidアプリハンズオンJavaScript(AngularJS・React.js)で作る iOS・Androidアプリハンズオン
JavaScript(AngularJS・React.js)で作る iOS・Androidアプリハンズオン
 

Semelhante a jQuery勉強会#4

Jqm20120210
Jqm20120210Jqm20120210
Jqm20120210
cmtomoda
 
Node.js - JavaScript Thread Programming
Node.js - JavaScript Thread ProgrammingNode.js - JavaScript Thread Programming
Node.js - JavaScript Thread Programming
takesako
 
20091030cakephphandson 01
20091030cakephphandson 0120091030cakephphandson 01
20091030cakephphandson 01
Yusuke Ando
 
Lightweight Language Tiger 2010
Lightweight Language Tiger 2010Lightweight Language Tiger 2010
Lightweight Language Tiger 2010
biscuitjam
 
Twitter連携chrome extension作り方
Twitter連携chrome extension作り方Twitter連携chrome extension作り方
Twitter連携chrome extension作り方
Hiroshi Oyamada
 
Lighting componentワークブック(経費精算アプリ)
Lighting componentワークブック(経費精算アプリ)Lighting componentワークブック(経費精算アプリ)
Lighting componentワークブック(経費精算アプリ)
Akihiro Iwaya
 
モバイル開発@symfony
モバイル開発@symfonyモバイル開発@symfony
モバイル開発@symfony
Daichi Kamemoto
 

Semelhante a jQuery勉強会#4 (20)

Visualforce + jQuery
Visualforce + jQueryVisualforce + jQuery
Visualforce + jQuery
 
Try Jetpack
Try JetpackTry Jetpack
Try Jetpack
 
jQuery超入門編
jQuery超入門編jQuery超入門編
jQuery超入門編
 
Jqm20120210
Jqm20120210Jqm20120210
Jqm20120210
 
EWD 3トレーニングコース#30 ewd-xpressアプリケーションをモジュラー化する
EWD 3トレーニングコース#30 ewd-xpressアプリケーションをモジュラー化するEWD 3トレーニングコース#30 ewd-xpressアプリケーションをモジュラー化する
EWD 3トレーニングコース#30 ewd-xpressアプリケーションをモジュラー化する
 
CodeIgniterによるPhwittr
CodeIgniterによるPhwittrCodeIgniterによるPhwittr
CodeIgniterによるPhwittr
 
Node.js - JavaScript Thread Programming
Node.js - JavaScript Thread ProgrammingNode.js - JavaScript Thread Programming
Node.js - JavaScript Thread Programming
 
EWD 3トレーニングコース#30 ewd-xpressアプリケーションをモジュラー化する
EWD 3トレーニングコース#30 ewd-xpressアプリケーションをモジュラー化するEWD 3トレーニングコース#30 ewd-xpressアプリケーションをモジュラー化する
EWD 3トレーニングコース#30 ewd-xpressアプリケーションをモジュラー化する
 
20091030cakephphandson 01
20091030cakephphandson 0120091030cakephphandson 01
20091030cakephphandson 01
 
Lightweight Language Tiger 2010
Lightweight Language Tiger 2010Lightweight Language Tiger 2010
Lightweight Language Tiger 2010
 
Lightweight Language Tiger 2010
Lightweight Language Tiger 2010Lightweight Language Tiger 2010
Lightweight Language Tiger 2010
 
Twitter連携chrome extension作り方
Twitter連携chrome extension作り方Twitter連携chrome extension作り方
Twitter連携chrome extension作り方
 
Data apiで実現 進化するwebの世界
Data apiで実現 進化するwebの世界Data apiで実現 進化するwebの世界
Data apiで実現 進化するwebの世界
 
Lighting componentワークブック(経費精算アプリ)
Lighting componentワークブック(経費精算アプリ)Lighting componentワークブック(経費精算アプリ)
Lighting componentワークブック(経費精算アプリ)
 
Ci tutorial
Ci tutorialCi tutorial
Ci tutorial
 
モバイル開発@symfony
モバイル開発@symfonyモバイル開発@symfony
モバイル開発@symfony
 
OSC京都2011
OSC京都2011OSC京都2011
OSC京都2011
 
OSC2011 Androidハンズオン
OSC2011 AndroidハンズオンOSC2011 Androidハンズオン
OSC2011 Androidハンズオン
 
MailFluteでメール送信を楽しもう!
MailFluteでメール送信を楽しもう!MailFluteでメール送信を楽しもう!
MailFluteでメール送信を楽しもう!
 
ソーシャルアプリ勉強会(第一回資料)配布用
ソーシャルアプリ勉強会(第一回資料)配布用ソーシャルアプリ勉強会(第一回資料)配布用
ソーシャルアプリ勉強会(第一回資料)配布用
 

Mais de Ryo Maruyama

Webサーバの性能測定
Webサーバの性能測定Webサーバの性能測定
Webサーバの性能測定
Ryo Maruyama
 
画像を使わずにデザイン
画像を使わずにデザイン画像を使わずにデザイン
画像を使わずにデザイン
Ryo Maruyama
 
勝手に改造 Chrome to Phone
勝手に改造 Chrome to Phone勝手に改造 Chrome to Phone
勝手に改造 Chrome to Phone
Ryo Maruyama
 
レインボーテーブルを使ったハッシュの復号とSalt
レインボーテーブルを使ったハッシュの復号とSaltレインボーテーブルを使ったハッシュの復号とSalt
レインボーテーブルを使ったハッシュの復号とSalt
Ryo Maruyama
 
プログラミング言語Ruby 1章 イントロダクション
プログラミング言語Ruby 1章 イントロダクションプログラミング言語Ruby 1章 イントロダクション
プログラミング言語Ruby 1章 イントロダクション
Ryo Maruyama
 

Mais de Ryo Maruyama (14)

jQuery勉強会#3
jQuery勉強会#3jQuery勉強会#3
jQuery勉強会#3
 
jQuery勉強会#2
jQuery勉強会#2jQuery勉強会#2
jQuery勉強会#2
 
Webサーバの性能測定
Webサーバの性能測定Webサーバの性能測定
Webサーバの性能測定
 
Sphinx/reST
Sphinx/reSTSphinx/reST
Sphinx/reST
 
CoffeeScript
CoffeeScriptCoffeeScript
CoffeeScript
 
JSDoc ToolKit
JSDoc ToolKitJSDoc ToolKit
JSDoc ToolKit
 
JavaScript入門
JavaScript入門JavaScript入門
JavaScript入門
 
画像を使わずにデザイン
画像を使わずにデザイン画像を使わずにデザイン
画像を使わずにデザイン
 
AWS Vol.1
AWS Vol.1AWS Vol.1
AWS Vol.1
 
HTML Launcher
HTML LauncherHTML Launcher
HTML Launcher
 
C2DM
C2DMC2DM
C2DM
 
勝手に改造 Chrome to Phone
勝手に改造 Chrome to Phone勝手に改造 Chrome to Phone
勝手に改造 Chrome to Phone
 
レインボーテーブルを使ったハッシュの復号とSalt
レインボーテーブルを使ったハッシュの復号とSaltレインボーテーブルを使ったハッシュの復号とSalt
レインボーテーブルを使ったハッシュの復号とSalt
 
プログラミング言語Ruby 1章 イントロダクション
プログラミング言語Ruby 1章 イントロダクションプログラミング言語Ruby 1章 イントロダクション
プログラミング言語Ruby 1章 イントロダクション
 

Último

Último (11)

LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 

jQuery勉強会#4