SlideShare uma empresa Scribd logo
1 de 43
jQuery 超入門
              2012年5月12日
         Knock! Knock! 勉強会
本日のお題

1)jQueryでできること
2)事例でみる利用法 : RSSフィードの読み込み編
3)jQuery時代のJavaScript
W eb




              4
1/20
W eb

       W eb /DTP

          W eb

                     W eb   S



1/20
1/20
1)jQueryでできること
jQueryででき こ
                       る と




    jQueryとは…
JavaScriptの便利ツール
jQueryででき こ
                         る と




   jQueryででき こ
             る と
「要素を選択」 て し 「操作」 る
                 す
例)p要素を選択 → class属性を追加
例)div要素を選択 → ス ドし ら表示
              ライ なが
jQueryででき こ
                                           る と




   「要素を選択」 て
          し 「操作」 る
                す
$(document).ready(function(){
    $(”
      #nav li:last-child”
                        ).addClass(”
                                   lastChild”
                                            )
});     要素を選択                    操作
                    接着剤
jQueryででき こ
                                           る と




       jQueryの”
              魔法の言葉”
$(document).ready(function(){
    $(”
      #nav li:last-child”
                        ).addClass(”
                                   lastChild”
                                            )
});
       意味 : 準備ができた         ら始め し う
                                 ま ょ
jQueryででき こ
                        る と




  jQueryの便利なと ろ
             こ
・クロスブラウザ対応が容易
・要素選択がCSSセレク ライ で容易
            タ ク
・派手なアニメーション効果
・プラグインが豊富
jQueryででき こ
                                         る と




  便利① : ク ブラウザ対応
         ロス

                            6   8        9
 V8   Nitro   JägerMonkey            Chakra
ブラウザの独自実装な サポー し
          ど、  ト ている機能が微妙に違う

ブラウザ間の差異をjQueryがある程度吸収
jQueryででき こ
                                    る と




   便利② : CSS的な要素選択
JavaScript DOM選択
document.getElementsById("idName")
jQuery DOM選択
$(”
  #idName”
         )
jQueryででき こ
                                 る と




便利③ : アニメーシ ン
           ョ

 ・fadeIn / dadeOut
 ・slideDown / slideUp
 ・animate
jQueryででき こ
         る と
jQueryででき こ
                        る と




よ 使われるjQueryの使用例
 く

 ・ス ラ プテー
   ト イ    ブル
 ・アコーデ オン
      ィ パネル / タブ
 ・ス イ シ
   ラ ド ョー
 ・ラ ト ッ ス
   イ ボ ク
2)事例でみる利用法 : RSSフィードの読み込み編
事例でみる利用法




与件 : RSSから新着情報を生成
・ サ ト内ブロ
   イ    グのRSSから新着情報を生成し、
  ト プページに挿入
   ッ
・ 最新の2件を表示
・ 新着情報は「更新日」写真1点
            「    (あれば) 本文
                      「 (抜粋)
                      」    」
・ CMS側での対応とい う選択肢は今回はなし
事例でみる利用法
事例でみる利用法

                                       Atomフ ードを く く
                                            ィ   よ よ 読む
<?xml version="1.0" encoding="UTF-8" ?>
<feed xml:lang="ja" xmlns="http://www.w3.org/2005/Atom">
<title>ブログ</title>
<subtitle type="html"></subtitle>
<link rel="alternate" href="http://teh.heteml.jp/soytest/blog/" />
<link rel="self" type="application/atom+xml" href="http://teh.heteml.jp/soytest/blog/feed?feed=atom" />
<author><name></name></author>
<id>http://teh.heteml.jp/soytest/blog/</id>
<updated>2012-05-11T19:10:43+09:00</updated>
<entry>
<title>その後はどんな感じでしょ              うか</title>
<link rel="alternate" href="http://teh.heteml.jp/soytest/blog/article/%82%87%E3%81%86%E3%81%8B" type="application/xhtml+xml"/>
<published>2012-05-11T19:08:08+09:00</published>
<updated>2012-05-11T19:10:43+09:00</updated>
<id>http://teh.heteml.jp/soytest/blog/article/2</id>
<content type="html"><![CDATA[<p><img height="360" width="480" src="http://teh.heteml.jp/soytest/files/HP010_L.jpg" /></p>
<p><span>YouTubeで爆発的に再生され、                 </span><wbr></wbr><span>世界中のメディアで話題になった</span><br /><span>                 「iPadマジック」    をご存知でしょうか?
       </span><br /><span>そのマジックを手掛け、                プレゼンのプロである内田伸哉さんに</span><br />
       <span>プレゼン術の講座をご講演いただきました </span></p>]]></content>
                                                        !
</entry>
<entry>
<title>Webサイトをリニューアルしました</title>
<link rel="alternate" href="http://teh.heteml.jp/soytest/blog/article/%AB%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F" type="application/xhtml+xml"/>
<published>2012-05-11T18:56:14+09:00</published>
<updated>2012-05-11T18:56:14+09:00</updated>
<id>http://teh.heteml.jp/soytest/blog/article/1</id>
<content type="html"><![CDATA[おまめ商事のWebサイトをこのたびリニューアルいたしました。 />今後ともよろしくお願いします。               <br                         ]]></content>
</entry>
</feed>
事例でみる利用法




       ス リ
        ク プトの概要
与件から処理の手順を
         “言語化” て整理
              し
・ jQueryのAjax通信でAtomフ ードを読み込み
                     ィ
・ Atomフ ードを解析→更新情報のHTMLに再構築
        ィ
・ 件数分  (2回) り返し処理
            繰
$(document).ready(function(){                                                                                                          事例でみる利用法
      $.ajax({
             url : "/blog/feed?feed=atom",
             dataType : "xml",
             success : function callback(data){
                      // li要素を生成する関数
                      function creatLi(){
                              var entryDate = $("<span />").addClass("newsday").append($("entry:eq("+i+") published",data).text().replace(/-/g,"/").slice(0,10));
                              var entryTitle = $("entry:eq("+i+") title",data).text();
                              var entryUrl = $("entry:eq("+i+") link",data).attr("href");
                              var entryTilteUrl = $("<a />").attr("href",entryUrl).text(entryTitle);
                              var entryContinueUrl = $("<a />").attr("href",entryUrl).text("続きを読む");
                              var entryContent = $("entry:eq("+i+") content",data).text().replace(/<.+?>/g,"").replace(/&nbsp;/g,"").replace(/n/g,"");
                              var imgTag = $("entry:eq("+i+") content",data).text().match(/<img(.+?)>/);
                              //li要素を生成し、          要素内に情報を追加         (画像がある場合or場合で分岐)
                              if (imgTag){
                                       $("<li />").addClass("newsFeedList").append(imgTag[0]).append(entryDate).append(entryTilteUrl).append("<br>")
                                               .append(entryContent.slice(0,18)+"…").append("<br>").append(entryContinueUrl)
                                               .appendTo("ul#news");
                              } else {
                                       $("<li />").addClass("newsFeedList").append(entryDate).append(entryTilteUrl).append("<br>")
                                               .append(entryContent.slice(0,30)+"…").append("<br>").append(entryContinueUrl)
                                               .appendTo("ul#news");
                              }
                      }
                      // エントリーの件数を取得
                      var numOfEntry = 0;
                      $("entry",data).each(function(){
                              numOfEntry++
                      });
                      // 最新の2件を表示           (1件の場合はループしない)
                      var i = 0;
                      if (numOfEntry >= 2){
                              while (i<2){
                                       creatLi(i)
                                       i++;
                              };
                      }else{
                              creatLi(i)
                      }
             }
      });
});
事例でみる利用法

jQueryのAjax通信でRSSを読み込む
                 Ajax通信で のデータ
                        こ    を読み込む
 $.ajax({
      url : "/blog/feed?feed=atom",
      dataType : "xml",
      success : function callback(data){
         // li要素を生成する関数
      }
               読み込みに成功し ら、   た 以下を実行
 });
事例でみる利用法

              Atomフ ー
                   ィ ドを解析

// エン トリーのタイ       トルを取得 → 変数に格納
var entryTitle = $("entry title",data).text();
     読み込んだデータ ら     か    <title>内のテキ ト
                                    ス を抽出
     <entry>内の<title>を選択

                  ※「更新日」img要素」
                       「      など必用なデータをそれぞれ切り出し
事例でみる利用法

        更新情報のHTMLに再構築

// 更新情報のHTMLを生成
$("<li />").addClass("newsFeedList")
   .append(entryTilte).
                     《省略》.appendTo("ul#news");
新たに<li></li>を生成
   生成したli要素にnewsFeedListク ス
                         ラ を付加
li要素のなかに変数entryTitle =タ ト
                   (   イ ルテキ ト)
                            ス を追加
         できあがったli要素をul#newsの末尾に追加
事例でみる利用法

    件数分
      (2回)
         だけ繰り返し処理

// 最新の2件を表示     (2回処理する)
var i = 0;
              処理回数を記憶す ための変数iを用意
                        る
while (i<2){
              変数iが2未満の時、 処理を繰り返す指示
   creatLi(i)
              RSS分解→HTMLに再構築す る処理を実行
   i++;
              変数iを+1 ても
                    し どる
}
事例でみる利用法




実際にはも と複雑です
     っ     …
$(document).ready(function(){
      $.ajax({
             url : "/blog/feed?feed=atom",
             dataType : "xml",
             success : function callback(data){
                      // li要素を生成する関数
                      function creatLi(){
                              var entryDate = $("<span />").addClass("newsday").append($("entry:eq("+i+") published",data).text().replace(/-/g,"/").slice(0,10));
                              var entryTitle = $("entry:eq("+i+") title",data).text();
                              var entryUrl = $("entry:eq("+i+") link",data).attr("href");
                              var entryTilteUrl = $("<a />").attr("href",entryUrl).text(entryTitle);
                              var entryContinueUrl = $("<a />").attr("href",entryUrl).text("続きを読む");
                              var entryContent = $("entry:eq("+i+") content",data).text().replace(/<.+?>/g,"").replace(/&nbsp;/g,"").replace(/n/g,"");
                              var imgTag = $("entry:eq("+i+") content",data).text().match(/<img(.+?)>/);
                              //li要素を生成し、          要素内に情報を追加         (画像がある場合or場合で分岐)
                              if (imgTag){
                                       $("<li />").addClass("newsFeedList").append(imgTag[0]).append(entryDate).append(entryTilteUrl).append("<br>")
                                               .append(entryContent.slice(0,18)+"…").append("<br>").append(entryContinueUrl)
                                               .appendTo("ul#news");
                              } else {
                                       $("<li />").addClass("newsFeedList").append(entryDate).append(entryTilteUrl).append("<br>")
                                               .append(entryContent.slice(0,30)+"…").append("<br>").append(entryContinueUrl)
                                               .appendTo("ul#news");
                              }
                      }
                      // エントリーの件数を取得
                      var numOfEntry = 0;
                      $("entry",data).each(function(){
                              numOfEntry++
                      });
                      // 最新の2件を表示           (1件の場合はループしない)
                      var i = 0;
                      if (numOfEntry >= 2){
                              while (i<2){
                                       creatLi(i)
                                       i++;
                              };
                      }else{
                              creatLi(i)
                      }
             }
      });
});
3)jQuery全盛時代のJavaScript
jQuery時代のJavaScript




  jQuery × JavaScript
jQueryだけででき こ
           る とは限られている
・ 変数
・ イ ク メ ト関数
    ン リ ン
・ if文、 while文
・ replaceメ ッ sliceメ ッ matchメ ッ
           ソ ド、    ソ ド、     ソ ド

                 ※ jQuery → ここではプラグ ン利用など
                                   イ
jQuery時代のJavaScript



    jQueryは超便利、
だけどJavaScriptの ルも必要
              スキ
  ・ jQueryはJavaScriptの便利ツール
  ・ JavaScript本来の機能も活かしやすい

jQueryはJavaScriptをラ にし く
                   ク て れる
jQuery時代のJavaScript



  Webデザ ンにおける
       イ     「動き」が
    ますます重要にな ている
            っ
・
「動き」  もWebデザ ンの範疇
            イ
・その動きを制御す   るのがCSS3やJavaScript
・canvasほかにはJavaScriptが欠かせない
jQuery時代のJavaScript




あなたがJSのプロにな な ても
           ら く いいです。
 ただ、
   何ができて、 レベルの と
          どの     こ か、
それを判断でき る知識はすでに必須です。
jQuery時代のJavaScript




    苦手意識を持たずに、
でき と ろから身につけていこ !
  る こ          うぜ
参考図書
参考図書




著者 : 西畑 一馬
出版社 : ア  スキー・メ ィデ アワークス
発売日 : 2010年2月12日
B5変形判 / 344ページ
定価 : 3,497円(税込)
ISBN 978-4048684118
参考図書




著者 : 高津戸 壮
出版社 : 技術評論社
発売日 : 2011年12月8日
B5変形判 / 288ページ
定価 : 3,024円 (税込)
ISBN 978-4-7741-4856-4
参考図書




著者 : たに ぐち ま とこ
出版社 : マ ナビ
         イ
発売日 : 2012年03月24日
B5変型判 / 288ページ
定価 : 2,604円(税込)
ISBN 978-4-8399-4187-1
参考図書




著者 : 西畑一馬,中村享介,徳田和規
出版社 : イ  ンプレ ャ
             スジ パン
発売日 : 2010年12月17日
424ページ
定価 : 3,150円(税込)
ISBN 978-4844329619
本日はあ がと ございま
    り う     した
 ご連絡・ご質問など下記までお願いし            ます
   E-mail : info@hamnaly.com
  Facebook / Twitter : yabecchy

Mais conteúdo relacionado

Mais procurados

第一回Miim勉強会
第一回Miim勉強会第一回Miim勉強会
第一回Miim勉強会Yuri Kawamoto
 
Parse introduction
Parse introductionParse introduction
Parse introductionTamura Koya
 
Vue.jsでFormをAtomic Designしてみた時のコンポーネント間のデータのやりとり
Vue.jsでFormをAtomic Designしてみた時のコンポーネント間のデータのやりとりVue.jsでFormをAtomic Designしてみた時のコンポーネント間のデータのやりとり
Vue.jsでFormをAtomic Designしてみた時のコンポーネント間のデータのやりとりYuta Ohashi
 
G*workshop 2011/11/22 Geb+Betamax
G*workshop 2011/11/22 Geb+BetamaxG*workshop 2011/11/22 Geb+Betamax
G*workshop 2011/11/22 Geb+BetamaxNobuhiro Sue
 
CakePHP+Smartyハイブリッドによるラクラク開発
CakePHP+Smartyハイブリッドによるラクラク開発CakePHP+Smartyハイブリッドによるラクラク開発
CakePHP+Smartyハイブリッドによるラクラク開発Shinzo SAITO
 
J qmobiはjqueryから軽量化しているか
J qmobiはjqueryから軽量化しているかJ qmobiはjqueryから軽量化しているか
J qmobiはjqueryから軽量化しているかHisashi Aruji
 
Tritonn から Elasticsearch への移行話
Tritonn から Elasticsearch への移行話Tritonn から Elasticsearch への移行話
Tritonn から Elasticsearch への移行話do_aki
 
EucalyptusのHadoopクラスタとJaqlでBasket解析をしてHiveとの違いを味わってみました
EucalyptusのHadoopクラスタとJaqlでBasket解析をしてHiveとの違いを味わってみましたEucalyptusのHadoopクラスタとJaqlでBasket解析をしてHiveとの違いを味わってみました
EucalyptusのHadoopクラスタとJaqlでBasket解析をしてHiveとの違いを味わってみましたEtsuji Nakai
 
HTMLの要素の選び方
HTMLの要素の選び方HTMLの要素の選び方
HTMLの要素の選び方TENTO_slide
 
Grails-1.1を斬る!~Grails-1.1からのチーム開発~ in Tokyo
Grails-1.1を斬る!~Grails-1.1からのチーム開発~ in TokyoGrails-1.1を斬る!~Grails-1.1からのチーム開発~ in Tokyo
Grails-1.1を斬る!~Grails-1.1からのチーム開発~ in TokyoTsuyoshi Yamamoto
 
20150530 pgunconf-pgbench-semi-structured-benchmark
20150530 pgunconf-pgbench-semi-structured-benchmark20150530 pgunconf-pgbench-semi-structured-benchmark
20150530 pgunconf-pgbench-semi-structured-benchmarkToshi Harada
 
JavaScript/CSS 2015 Autumn
JavaScript/CSS 2015 AutumnJavaScript/CSS 2015 Autumn
JavaScript/CSS 2015 AutumnKoji Ishimoto
 
XOOPS Cube Conference 2012 Developer Workshop 3
XOOPS Cube Conference 2012 Developer Workshop 3XOOPS Cube Conference 2012 Developer Workshop 3
XOOPS Cube Conference 2012 Developer Workshop 3Hikawa Kilica
 

Mais procurados (20)

第一回Miim勉強会
第一回Miim勉強会第一回Miim勉強会
第一回Miim勉強会
 
OSC京都2011
OSC京都2011OSC京都2011
OSC京都2011
 
Parse introduction
Parse introductionParse introduction
Parse introduction
 
Vue.jsでFormをAtomic Designしてみた時のコンポーネント間のデータのやりとり
Vue.jsでFormをAtomic Designしてみた時のコンポーネント間のデータのやりとりVue.jsでFormをAtomic Designしてみた時のコンポーネント間のデータのやりとり
Vue.jsでFormをAtomic Designしてみた時のコンポーネント間のデータのやりとり
 
Teclab3
Teclab3Teclab3
Teclab3
 
swooleを試してみた
swooleを試してみたswooleを試してみた
swooleを試してみた
 
G*workshop 2011/11/22 Geb+Betamax
G*workshop 2011/11/22 Geb+BetamaxG*workshop 2011/11/22 Geb+Betamax
G*workshop 2011/11/22 Geb+Betamax
 
CakePHP+Smartyハイブリッドによるラクラク開発
CakePHP+Smartyハイブリッドによるラクラク開発CakePHP+Smartyハイブリッドによるラクラク開発
CakePHP+Smartyハイブリッドによるラクラク開発
 
J qmobiはjqueryから軽量化しているか
J qmobiはjqueryから軽量化しているかJ qmobiはjqueryから軽量化しているか
J qmobiはjqueryから軽量化しているか
 
Tritonn から Elasticsearch への移行話
Tritonn から Elasticsearch への移行話Tritonn から Elasticsearch への移行話
Tritonn から Elasticsearch への移行話
 
Actor&stm
Actor&stmActor&stm
Actor&stm
 
Yahoo!ボックスAPI Hackathon向け資料
Yahoo!ボックスAPI Hackathon向け資料Yahoo!ボックスAPI Hackathon向け資料
Yahoo!ボックスAPI Hackathon向け資料
 
Yahoo!ボックスAPI Hackday資料
Yahoo!ボックスAPI Hackday資料Yahoo!ボックスAPI Hackday資料
Yahoo!ボックスAPI Hackday資料
 
EucalyptusのHadoopクラスタとJaqlでBasket解析をしてHiveとの違いを味わってみました
EucalyptusのHadoopクラスタとJaqlでBasket解析をしてHiveとの違いを味わってみましたEucalyptusのHadoopクラスタとJaqlでBasket解析をしてHiveとの違いを味わってみました
EucalyptusのHadoopクラスタとJaqlでBasket解析をしてHiveとの違いを味わってみました
 
Scala with DDD
Scala with DDDScala with DDD
Scala with DDD
 
HTMLの要素の選び方
HTMLの要素の選び方HTMLの要素の選び方
HTMLの要素の選び方
 
Grails-1.1を斬る!~Grails-1.1からのチーム開発~ in Tokyo
Grails-1.1を斬る!~Grails-1.1からのチーム開発~ in TokyoGrails-1.1を斬る!~Grails-1.1からのチーム開発~ in Tokyo
Grails-1.1を斬る!~Grails-1.1からのチーム開発~ in Tokyo
 
20150530 pgunconf-pgbench-semi-structured-benchmark
20150530 pgunconf-pgbench-semi-structured-benchmark20150530 pgunconf-pgbench-semi-structured-benchmark
20150530 pgunconf-pgbench-semi-structured-benchmark
 
JavaScript/CSS 2015 Autumn
JavaScript/CSS 2015 AutumnJavaScript/CSS 2015 Autumn
JavaScript/CSS 2015 Autumn
 
XOOPS Cube Conference 2012 Developer Workshop 3
XOOPS Cube Conference 2012 Developer Workshop 3XOOPS Cube Conference 2012 Developer Workshop 3
XOOPS Cube Conference 2012 Developer Workshop 3
 

Destaque

20111001 adobe edgeとhtml5_css3_javascrit
20111001 adobe edgeとhtml5_css3_javascrit20111001 adobe edgeとhtml5_css3_javascrit
20111001 adobe edgeとhtml5_css3_javascritYasuhito Yabe
 
今日からはじめるHTML5 ver.2012
今日からはじめるHTML5 ver.2012今日からはじめるHTML5 ver.2012
今日からはじめるHTML5 ver.2012Yasuhito Yabe
 
ソフト業界生き残りの条件
ソフト業界生き残りの条件ソフト業界生き残りの条件
ソフト業界生き残りの条件Katsuhide Hirai
 
ModelとViewに分ける設計 - #JSオジサン
ModelとViewに分ける設計 - #JSオジサンModelとViewに分ける設計 - #JSオジサン
ModelとViewに分ける設計 - #JSオジサンGinpei Takanashi
 
謝章升-Google Analytics網站流量分析入門實作
謝章升-Google Analytics網站流量分析入門實作謝章升-Google Analytics網站流量分析入門實作
謝章升-Google Analytics網站流量分析入門實作Beckett Hsieh
 
ITエンジニアの幸せな働き方(仮)
ITエンジニアの幸せな働き方(仮)ITエンジニアの幸せな働き方(仮)
ITエンジニアの幸せな働き方(仮)Kunihiro TANAKA
 

Destaque (6)

20111001 adobe edgeとhtml5_css3_javascrit
20111001 adobe edgeとhtml5_css3_javascrit20111001 adobe edgeとhtml5_css3_javascrit
20111001 adobe edgeとhtml5_css3_javascrit
 
今日からはじめるHTML5 ver.2012
今日からはじめるHTML5 ver.2012今日からはじめるHTML5 ver.2012
今日からはじめるHTML5 ver.2012
 
ソフト業界生き残りの条件
ソフト業界生き残りの条件ソフト業界生き残りの条件
ソフト業界生き残りの条件
 
ModelとViewに分ける設計 - #JSオジサン
ModelとViewに分ける設計 - #JSオジサンModelとViewに分ける設計 - #JSオジサン
ModelとViewに分ける設計 - #JSオジサン
 
謝章升-Google Analytics網站流量分析入門實作
謝章升-Google Analytics網站流量分析入門實作謝章升-Google Analytics網站流量分析入門實作
謝章升-Google Analytics網站流量分析入門實作
 
ITエンジニアの幸せな働き方(仮)
ITエンジニアの幸せな働き方(仮)ITエンジニアの幸せな働き方(仮)
ITエンジニアの幸せな働き方(仮)
 

Semelhante a jQuery超入門編

20110714 j queryベーシック
20110714 j queryベーシック20110714 j queryベーシック
20110714 j queryベーシック良太 増子
 
初めての Data api cms どうでしょう - 大阪夏の陣
初めての Data api   cms どうでしょう - 大阪夏の陣初めての Data api   cms どうでしょう - 大阪夏の陣
初めての Data api cms どうでしょう - 大阪夏の陣Yuji Takayama
 
初めての Data api
初めての Data api初めての Data api
初めての Data apiYuji Takayama
 
Magento meet up Tokyo#1 for Design
Magento meet up Tokyo#1 for DesignMagento meet up Tokyo#1 for Design
Magento meet up Tokyo#1 for DesignMiho Nakano
 
Jqm20120210
Jqm20120210Jqm20120210
Jqm20120210cmtomoda
 
Data apiで実現 進化するwebの世界
Data apiで実現 進化するwebの世界Data apiで実現 進化するwebの世界
Data apiで実現 進化するwebの世界Yuji Takayama
 
初めての Data API CMS どうでしょう - 仙台編 -
初めての Data API   CMS どうでしょう - 仙台編 -初めての Data API   CMS どうでしょう - 仙台編 -
初めての Data API CMS どうでしょう - 仙台編 -Yuji Takayama
 
SocialWeb Conference vol.5 OpenSocial Night #2
SocialWeb Conference vol.5 OpenSocial Night #2SocialWeb Conference vol.5 OpenSocial Night #2
SocialWeb Conference vol.5 OpenSocial Night #2Nobuhiro Nakajima
 
ScaLa+Liftとか
ScaLa+LiftとかScaLa+Liftとか
ScaLa+Liftとかyouku
 
Twitter連携chrome extension作り方
Twitter連携chrome extension作り方Twitter連携chrome extension作り方
Twitter連携chrome extension作り方Hiroshi Oyamada
 
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方linzhixing
 
scala+liftで遊ぼう
scala+liftで遊ぼうscala+liftで遊ぼう
scala+liftで遊ぼうyouku
 
エンタープライズ分野での実践AngularJS
エンタープライズ分野での実践AngularJSエンタープライズ分野での実践AngularJS
エンタープライズ分野での実践AngularJSAyumi Goto
 
Apache Torqueについて
Apache TorqueについてApache Torqueについて
Apache Torqueについてtako pons
 
20130924 Picomon CRH勉強会
20130924 Picomon CRH勉強会20130924 Picomon CRH勉強会
20130924 Picomon CRH勉強会Yukihiro Kitazawa
 
Jetpack Library 事始め
Jetpack Library 事始めJetpack Library 事始め
Jetpack Library 事始めTomohiro Kaizu
 

Semelhante a jQuery超入門編 (20)

20110714 j queryベーシック
20110714 j queryベーシック20110714 j queryベーシック
20110714 j queryベーシック
 
初めての Data api cms どうでしょう - 大阪夏の陣
初めての Data api   cms どうでしょう - 大阪夏の陣初めての Data api   cms どうでしょう - 大阪夏の陣
初めての Data api cms どうでしょう - 大阪夏の陣
 
初めての Data api
初めての Data api初めての Data api
初めての Data api
 
Magento meet up Tokyo#1 for Design
Magento meet up Tokyo#1 for DesignMagento meet up Tokyo#1 for Design
Magento meet up Tokyo#1 for Design
 
Try Jetpack
Try JetpackTry Jetpack
Try Jetpack
 
Jqm20120210
Jqm20120210Jqm20120210
Jqm20120210
 
Data apiで実現 進化するwebの世界
Data apiで実現 進化するwebの世界Data apiで実現 進化するwebの世界
Data apiで実現 進化するwebの世界
 
Visualforce + jQuery
Visualforce + jQueryVisualforce + jQuery
Visualforce + jQuery
 
Jetpack Workshop
Jetpack WorkshopJetpack Workshop
Jetpack Workshop
 
初めての Data API CMS どうでしょう - 仙台編 -
初めての Data API   CMS どうでしょう - 仙台編 -初めての Data API   CMS どうでしょう - 仙台編 -
初めての Data API CMS どうでしょう - 仙台編 -
 
SocialWeb Conference vol.5 OpenSocial Night #2
SocialWeb Conference vol.5 OpenSocial Night #2SocialWeb Conference vol.5 OpenSocial Night #2
SocialWeb Conference vol.5 OpenSocial Night #2
 
ScaLa+Liftとか
ScaLa+LiftとかScaLa+Liftとか
ScaLa+Liftとか
 
Twitter連携chrome extension作り方
Twitter連携chrome extension作り方Twitter連携chrome extension作り方
Twitter連携chrome extension作り方
 
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
 
scala+liftで遊ぼう
scala+liftで遊ぼうscala+liftで遊ぼう
scala+liftで遊ぼう
 
エンタープライズ分野での実践AngularJS
エンタープライズ分野での実践AngularJSエンタープライズ分野での実践AngularJS
エンタープライズ分野での実践AngularJS
 
Apache Torqueについて
Apache TorqueについてApache Torqueについて
Apache Torqueについて
 
Ajax 応用
Ajax 応用Ajax 応用
Ajax 応用
 
20130924 Picomon CRH勉強会
20130924 Picomon CRH勉強会20130924 Picomon CRH勉強会
20130924 Picomon CRH勉強会
 
Jetpack Library 事始め
Jetpack Library 事始めJetpack Library 事始め
Jetpack Library 事始め
 

Mais de Yasuhito Yabe

Designer Meets Bootstrap(22th Knock!)
Designer Meets Bootstrap(22th Knock!)Designer Meets Bootstrap(22th Knock!)
Designer Meets Bootstrap(22th Knock!)Yasuhito Yabe
 
20131206 静岡web制作界隈ゆく年くる年2013
20131206 静岡web制作界隈ゆく年くる年201320131206 静岡web制作界隈ゆく年くる年2013
20131206 静岡web制作界隈ゆく年くる年2013Yasuhito Yabe
 
イラレでWebデザインしても嫌われないデータ作成術
イラレでWebデザインしても嫌われないデータ作成術イラレでWebデザインしても嫌われないデータ作成術
イラレでWebデザインしても嫌われないデータ作成術Yasuhito Yabe
 
「html5 boilerplate」から考える、これからのマークアップ
「html5 boilerplate」から考える、これからのマークアップ「html5 boilerplate」から考える、これからのマークアップ
「html5 boilerplate」から考える、これからのマークアップYasuhito Yabe
 
レスポンシブWebデザイン【発展編】
レスポンシブWebデザイン【発展編】レスポンシブWebデザイン【発展編】
レスポンシブWebデザイン【発展編】Yasuhito Yabe
 
レスポンシブWebデザイン【基礎編】
レスポンシブWebデザイン【基礎編】レスポンシブWebデザイン【基礎編】
レスポンシブWebデザイン【基礎編】Yasuhito Yabe
 
静岡Web制作界隈 ゆく年くる年 2012
静岡Web制作界隈 ゆく年くる年 2012静岡Web制作界隈 ゆく年くる年 2012
静岡Web制作界隈 ゆく年くる年 2012Yasuhito Yabe
 
あらためて考えるCMS選択 2012
あらためて考えるCMS選択 2012あらためて考えるCMS選択 2012
あらためて考えるCMS選択 2012Yasuhito Yabe
 
Htmlコーディングの効率化 後編
Htmlコーディングの効率化 後編Htmlコーディングの効率化 後編
Htmlコーディングの効率化 後編Yasuhito Yabe
 
Htmlコーディングの効率化 前編
Htmlコーディングの効率化 前編Htmlコーディングの効率化 前編
Htmlコーディングの効率化 前編Yasuhito Yabe
 
jQueryでiTunes Store風スライドショーを作ってみる
jQueryでiTunes Store風スライドショーを作ってみるjQueryでiTunes Store風スライドショーを作ってみる
jQueryでiTunes Store風スライドショーを作ってみるYasuhito Yabe
 
Web制作者のためのWebマーケティング用語と計算式
Web制作者のためのWebマーケティング用語と計算式Web制作者のためのWebマーケティング用語と計算式
Web制作者のためのWebマーケティング用語と計算式Yasuhito Yabe
 
Knock! Knock! サイトができるまで
Knock! Knock! サイトができるまでKnock! Knock! サイトができるまで
Knock! Knock! サイトができるまでYasuhito Yabe
 
みんビズ その傾向と対策
みんビズ その傾向と対策みんビズ その傾向と対策
みんビズ その傾向と対策Yasuhito Yabe
 
a-blog cms 事例紹介(TalkNote Vol.1)
a-blog cms 事例紹介(TalkNote Vol.1)a-blog cms 事例紹介(TalkNote Vol.1)
a-blog cms 事例紹介(TalkNote Vol.1)Yasuhito Yabe
 

Mais de Yasuhito Yabe (15)

Designer Meets Bootstrap(22th Knock!)
Designer Meets Bootstrap(22th Knock!)Designer Meets Bootstrap(22th Knock!)
Designer Meets Bootstrap(22th Knock!)
 
20131206 静岡web制作界隈ゆく年くる年2013
20131206 静岡web制作界隈ゆく年くる年201320131206 静岡web制作界隈ゆく年くる年2013
20131206 静岡web制作界隈ゆく年くる年2013
 
イラレでWebデザインしても嫌われないデータ作成術
イラレでWebデザインしても嫌われないデータ作成術イラレでWebデザインしても嫌われないデータ作成術
イラレでWebデザインしても嫌われないデータ作成術
 
「html5 boilerplate」から考える、これからのマークアップ
「html5 boilerplate」から考える、これからのマークアップ「html5 boilerplate」から考える、これからのマークアップ
「html5 boilerplate」から考える、これからのマークアップ
 
レスポンシブWebデザイン【発展編】
レスポンシブWebデザイン【発展編】レスポンシブWebデザイン【発展編】
レスポンシブWebデザイン【発展編】
 
レスポンシブWebデザイン【基礎編】
レスポンシブWebデザイン【基礎編】レスポンシブWebデザイン【基礎編】
レスポンシブWebデザイン【基礎編】
 
静岡Web制作界隈 ゆく年くる年 2012
静岡Web制作界隈 ゆく年くる年 2012静岡Web制作界隈 ゆく年くる年 2012
静岡Web制作界隈 ゆく年くる年 2012
 
あらためて考えるCMS選択 2012
あらためて考えるCMS選択 2012あらためて考えるCMS選択 2012
あらためて考えるCMS選択 2012
 
Htmlコーディングの効率化 後編
Htmlコーディングの効率化 後編Htmlコーディングの効率化 後編
Htmlコーディングの効率化 後編
 
Htmlコーディングの効率化 前編
Htmlコーディングの効率化 前編Htmlコーディングの効率化 前編
Htmlコーディングの効率化 前編
 
jQueryでiTunes Store風スライドショーを作ってみる
jQueryでiTunes Store風スライドショーを作ってみるjQueryでiTunes Store風スライドショーを作ってみる
jQueryでiTunes Store風スライドショーを作ってみる
 
Web制作者のためのWebマーケティング用語と計算式
Web制作者のためのWebマーケティング用語と計算式Web制作者のためのWebマーケティング用語と計算式
Web制作者のためのWebマーケティング用語と計算式
 
Knock! Knock! サイトができるまで
Knock! Knock! サイトができるまでKnock! Knock! サイトができるまで
Knock! Knock! サイトができるまで
 
みんビズ その傾向と対策
みんビズ その傾向と対策みんビズ その傾向と対策
みんビズ その傾向と対策
 
a-blog cms 事例紹介(TalkNote Vol.1)
a-blog cms 事例紹介(TalkNote Vol.1)a-blog cms 事例紹介(TalkNote Vol.1)
a-blog cms 事例紹介(TalkNote Vol.1)
 

jQuery超入門編

  • 1. jQuery 超入門 2012年5月12日 Knock! Knock! 勉強会
  • 3.
  • 4. W eb 4 1/20
  • 5. W eb W eb /DTP W eb W eb S 1/20
  • 8. jQueryででき こ る と jQueryとは… JavaScriptの便利ツール
  • 9. jQueryででき こ る と jQueryででき こ る と 「要素を選択」 て し 「操作」 る す 例)p要素を選択 → class属性を追加 例)div要素を選択 → ス ドし ら表示 ライ なが
  • 10. jQueryででき こ る と 「要素を選択」 て し 「操作」 る す $(document).ready(function(){ $(” #nav li:last-child” ).addClass(” lastChild” ) }); 要素を選択 操作 接着剤
  • 11. jQueryででき こ る と jQueryの” 魔法の言葉” $(document).ready(function(){ $(” #nav li:last-child” ).addClass(” lastChild” ) }); 意味 : 準備ができた ら始め し う ま ょ
  • 12. jQueryででき こ る と jQueryの便利なと ろ こ ・クロスブラウザ対応が容易 ・要素選択がCSSセレク ライ で容易 タ ク ・派手なアニメーション効果 ・プラグインが豊富
  • 13. jQueryででき こ る と 便利① : ク ブラウザ対応 ロス 6 8 9 V8 Nitro JägerMonkey Chakra ブラウザの独自実装な サポー し ど、 ト ている機能が微妙に違う ブラウザ間の差異をjQueryがある程度吸収
  • 14. jQueryででき こ る と 便利② : CSS的な要素選択 JavaScript DOM選択 document.getElementsById("idName") jQuery DOM選択 $(” #idName” )
  • 15. jQueryででき こ る と 便利③ : アニメーシ ン ョ ・fadeIn / dadeOut ・slideDown / slideUp ・animate
  • 17. jQueryででき こ る と よ 使われるjQueryの使用例 く ・ス ラ プテー ト イ ブル ・アコーデ オン ィ パネル / タブ ・ス イ シ ラ ド ョー ・ラ ト ッ ス イ ボ ク
  • 18.
  • 20.
  • 21. 事例でみる利用法 与件 : RSSから新着情報を生成 ・ サ ト内ブロ イ グのRSSから新着情報を生成し、 ト プページに挿入 ッ ・ 最新の2件を表示 ・ 新着情報は「更新日」写真1点 「 (あれば) 本文 「 (抜粋) 」 」 ・ CMS側での対応とい う選択肢は今回はなし
  • 23. 事例でみる利用法 Atomフ ードを く く ィ よ よ 読む <?xml version="1.0" encoding="UTF-8" ?> <feed xml:lang="ja" xmlns="http://www.w3.org/2005/Atom"> <title>ブログ</title> <subtitle type="html"></subtitle> <link rel="alternate" href="http://teh.heteml.jp/soytest/blog/" /> <link rel="self" type="application/atom+xml" href="http://teh.heteml.jp/soytest/blog/feed?feed=atom" /> <author><name></name></author> <id>http://teh.heteml.jp/soytest/blog/</id> <updated>2012-05-11T19:10:43+09:00</updated> <entry> <title>その後はどんな感じでしょ うか</title> <link rel="alternate" href="http://teh.heteml.jp/soytest/blog/article/%82%87%E3%81%86%E3%81%8B" type="application/xhtml+xml"/> <published>2012-05-11T19:08:08+09:00</published> <updated>2012-05-11T19:10:43+09:00</updated> <id>http://teh.heteml.jp/soytest/blog/article/2</id> <content type="html"><![CDATA[<p><img height="360" width="480" src="http://teh.heteml.jp/soytest/files/HP010_L.jpg" /></p> <p><span>YouTubeで爆発的に再生され、 </span><wbr></wbr><span>世界中のメディアで話題になった</span><br /><span> 「iPadマジック」 をご存知でしょうか? </span><br /><span>そのマジックを手掛け、 プレゼンのプロである内田伸哉さんに</span><br /> <span>プレゼン術の講座をご講演いただきました </span></p>]]></content> ! </entry> <entry> <title>Webサイトをリニューアルしました</title> <link rel="alternate" href="http://teh.heteml.jp/soytest/blog/article/%AB%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F" type="application/xhtml+xml"/> <published>2012-05-11T18:56:14+09:00</published> <updated>2012-05-11T18:56:14+09:00</updated> <id>http://teh.heteml.jp/soytest/blog/article/1</id> <content type="html"><![CDATA[おまめ商事のWebサイトをこのたびリニューアルいたしました。 />今後ともよろしくお願いします。 <br ]]></content> </entry> </feed>
  • 24. 事例でみる利用法 ス リ ク プトの概要 与件から処理の手順を “言語化” て整理 し ・ jQueryのAjax通信でAtomフ ードを読み込み ィ ・ Atomフ ードを解析→更新情報のHTMLに再構築 ィ ・ 件数分 (2回) り返し処理 繰
  • 25. $(document).ready(function(){ 事例でみる利用法 $.ajax({ url : "/blog/feed?feed=atom", dataType : "xml", success : function callback(data){ // li要素を生成する関数 function creatLi(){ var entryDate = $("<span />").addClass("newsday").append($("entry:eq("+i+") published",data).text().replace(/-/g,"/").slice(0,10)); var entryTitle = $("entry:eq("+i+") title",data).text(); var entryUrl = $("entry:eq("+i+") link",data).attr("href"); var entryTilteUrl = $("<a />").attr("href",entryUrl).text(entryTitle); var entryContinueUrl = $("<a />").attr("href",entryUrl).text("続きを読む"); var entryContent = $("entry:eq("+i+") content",data).text().replace(/<.+?>/g,"").replace(/&nbsp;/g,"").replace(/n/g,""); var imgTag = $("entry:eq("+i+") content",data).text().match(/<img(.+?)>/); //li要素を生成し、 要素内に情報を追加 (画像がある場合or場合で分岐) if (imgTag){ $("<li />").addClass("newsFeedList").append(imgTag[0]).append(entryDate).append(entryTilteUrl).append("<br>") .append(entryContent.slice(0,18)+"…").append("<br>").append(entryContinueUrl) .appendTo("ul#news"); } else { $("<li />").addClass("newsFeedList").append(entryDate).append(entryTilteUrl).append("<br>") .append(entryContent.slice(0,30)+"…").append("<br>").append(entryContinueUrl) .appendTo("ul#news"); } } // エントリーの件数を取得 var numOfEntry = 0; $("entry",data).each(function(){ numOfEntry++ }); // 最新の2件を表示 (1件の場合はループしない) var i = 0; if (numOfEntry >= 2){ while (i<2){ creatLi(i) i++; }; }else{ creatLi(i) } } }); });
  • 26. 事例でみる利用法 jQueryのAjax通信でRSSを読み込む Ajax通信で のデータ こ を読み込む $.ajax({ url : "/blog/feed?feed=atom", dataType : "xml", success : function callback(data){ // li要素を生成する関数 } 読み込みに成功し ら、 た 以下を実行 });
  • 27. 事例でみる利用法 Atomフ ー ィ ドを解析 // エン トリーのタイ トルを取得 → 変数に格納 var entryTitle = $("entry title",data).text(); 読み込んだデータ ら か <title>内のテキ ト ス を抽出 <entry>内の<title>を選択 ※「更新日」img要素」 「 など必用なデータをそれぞれ切り出し
  • 28. 事例でみる利用法 更新情報のHTMLに再構築 // 更新情報のHTMLを生成 $("<li />").addClass("newsFeedList") .append(entryTilte). 《省略》.appendTo("ul#news"); 新たに<li></li>を生成 生成したli要素にnewsFeedListク ス ラ を付加 li要素のなかに変数entryTitle =タ ト ( イ ルテキ ト) ス を追加 できあがったli要素をul#newsの末尾に追加
  • 29. 事例でみる利用法 件数分 (2回) だけ繰り返し処理 // 最新の2件を表示 (2回処理する) var i = 0; 処理回数を記憶す ための変数iを用意 る while (i<2){ 変数iが2未満の時、 処理を繰り返す指示 creatLi(i) RSS分解→HTMLに再構築す る処理を実行 i++; 変数iを+1 ても し どる }
  • 31. $(document).ready(function(){ $.ajax({ url : "/blog/feed?feed=atom", dataType : "xml", success : function callback(data){ // li要素を生成する関数 function creatLi(){ var entryDate = $("<span />").addClass("newsday").append($("entry:eq("+i+") published",data).text().replace(/-/g,"/").slice(0,10)); var entryTitle = $("entry:eq("+i+") title",data).text(); var entryUrl = $("entry:eq("+i+") link",data).attr("href"); var entryTilteUrl = $("<a />").attr("href",entryUrl).text(entryTitle); var entryContinueUrl = $("<a />").attr("href",entryUrl).text("続きを読む"); var entryContent = $("entry:eq("+i+") content",data).text().replace(/<.+?>/g,"").replace(/&nbsp;/g,"").replace(/n/g,""); var imgTag = $("entry:eq("+i+") content",data).text().match(/<img(.+?)>/); //li要素を生成し、 要素内に情報を追加 (画像がある場合or場合で分岐) if (imgTag){ $("<li />").addClass("newsFeedList").append(imgTag[0]).append(entryDate).append(entryTilteUrl).append("<br>") .append(entryContent.slice(0,18)+"…").append("<br>").append(entryContinueUrl) .appendTo("ul#news"); } else { $("<li />").addClass("newsFeedList").append(entryDate).append(entryTilteUrl).append("<br>") .append(entryContent.slice(0,30)+"…").append("<br>").append(entryContinueUrl) .appendTo("ul#news"); } } // エントリーの件数を取得 var numOfEntry = 0; $("entry",data).each(function(){ numOfEntry++ }); // 最新の2件を表示 (1件の場合はループしない) var i = 0; if (numOfEntry >= 2){ while (i<2){ creatLi(i) i++; }; }else{ creatLi(i) } } }); });
  • 33. jQuery時代のJavaScript jQuery × JavaScript jQueryだけででき こ る とは限られている ・ 変数 ・ イ ク メ ト関数 ン リ ン ・ if文、 while文 ・ replaceメ ッ sliceメ ッ matchメ ッ ソ ド、 ソ ド、 ソ ド ※ jQuery → ここではプラグ ン利用など イ
  • 34. jQuery時代のJavaScript jQueryは超便利、 だけどJavaScriptの ルも必要 スキ ・ jQueryはJavaScriptの便利ツール ・ JavaScript本来の機能も活かしやすい jQueryはJavaScriptをラ にし く ク て れる
  • 35. jQuery時代のJavaScript Webデザ ンにおける イ 「動き」が ますます重要にな ている っ ・ 「動き」 もWebデザ ンの範疇 イ ・その動きを制御す るのがCSS3やJavaScript ・canvasほかにはJavaScriptが欠かせない
  • 36. jQuery時代のJavaScript あなたがJSのプロにな な ても ら く いいです。 ただ、 何ができて、 レベルの と どの こ か、 それを判断でき る知識はすでに必須です。
  • 37. jQuery時代のJavaScript 苦手意識を持たずに、 でき と ろから身につけていこ ! る こ うぜ
  • 39. 参考図書 著者 : 西畑 一馬 出版社 : ア スキー・メ ィデ アワークス 発売日 : 2010年2月12日 B5変形判 / 344ページ 定価 : 3,497円(税込) ISBN 978-4048684118
  • 40. 参考図書 著者 : 高津戸 壮 出版社 : 技術評論社 発売日 : 2011年12月8日 B5変形判 / 288ページ 定価 : 3,024円 (税込) ISBN 978-4-7741-4856-4
  • 41. 参考図書 著者 : たに ぐち ま とこ 出版社 : マ ナビ イ 発売日 : 2012年03月24日 B5変型判 / 288ページ 定価 : 2,604円(税込) ISBN 978-4-8399-4187-1
  • 42. 参考図書 著者 : 西畑一馬,中村享介,徳田和規 出版社 : イ ンプレ ャ スジ パン 発売日 : 2010年12月17日 424ページ 定価 : 3,150円(税込) ISBN 978-4844329619
  • 43. 本日はあ がと ございま り う した ご連絡・ご質問など下記までお願いし ます E-mail : info@hamnaly.com Facebook / Twitter : yabecchy