wordbench kobe jqueryどうでしょう

39
jQueryの基礎~ そしてcarouFredSelが すばらしすぎて泣ける 第15回WordBench神戸 jQueryどうでしょう @HissyNC

Upload: hishikawa-takuro

Post on 25-May-2015

1.746 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: WordBench Kobe jQueryどうでしょう

jQueryの基礎~そしてcarouFredSelがすばらしすぎて泣ける第15回WordBench神戸 jQueryどうでしょう

@HissyNC

Page 2: WordBench Kobe jQueryどうでしょう

自己紹介

• 菱川拓郎 @HissyNC

• コンクリートファイブジャパンという会社をやってます。オープンソースCMSのサポートを提供する会社です。

• オープンソースCMS大好き。最近は contao, ImpressPages CMS, ExpressionEngineに興味。フロントエンドエンジニア、ウェブディレクター

Page 3: WordBench Kobe jQueryどうでしょう

今日の話題はjQuery

Page 4: WordBench Kobe jQueryどうでしょう

今日の内容

• jQuery初心者に、jQueryとは何かを解説

• よくわからないままコピペで使っているjQueryユーザーに、書き方で気をつけるポイントを伝授

• jQuery中級者におすすめのカルーセルライブラリの紹介

Page 5: WordBench Kobe jQueryどうでしょう

jQueryとは?

• 迅速なWeb開発のための、高速で簡単にHTMLドキュメントの解析、イベントハンドリング、アニメーション、Ajaxインタラクションを行うためのJavascriptライブラリ。Javascriptの書き方を変えるためにデザインされた。(公式サイトより)

• …?

• ……??????

Page 6: WordBench Kobe jQueryどうでしょう

超訳・jQueryとは

HTMLの要素に対するオプション設定

Page 7: WordBench Kobe jQueryどうでしょう

jQueryこう考えよう

$(‘#test’).show();HTMLの要素に指示を出す

$(‘p’).attr(‘alt’,‘test’);HTMLの要素のオプション設定を変更する

Page 8: WordBench Kobe jQueryどうでしょう

Javascriptは難しい• Javascriptはプログラミング言語

• プログラミング言語は、何かにしてほしいことを人間から指示を出す

• Javascriptの場合は、ブラウザに指示を出す

• ブラウザはいっぱいあって、同じことを言っても同じように聞いてくれない

• いろんなブラウザへの調整で指示書がどんどん長くなっていきます

Page 9: WordBench Kobe jQueryどうでしょう

そこでjQueryは考えた• ブラウザに指示を出すからややこしいん

じゃね?

• HTML内の要素(DOM)に指示を出すように変えよう!

• そのためにブラウザの違いは先に調整しておこう!

• 長ったらしく書くのは大変だし重くなるから、できるだけ短く書けるようにしよう!

Page 10: WordBench Kobe jQueryどうでしょう

Javascript / jQuery 比較• [Javascript]

var element=document.getElementById("test") ;element.style.display = ‘block’;

• [jQuery]$(‘#test’).show();

• jQueryの方が短い!→ HTMLの要素(DOM)に直接指示を出せるから

Page 11: WordBench Kobe jQueryどうでしょう

DOM = Document Object Model

• HTMLとJavascriptをつなぐ仕組み

• HTMLをツリー状に解釈することで、HTMLの中の特定の部分にJavascriptからアクセスすることを可能にする

• html└body └div#wrapper  └p.text   └"HTML" ←テキストがツリーの末端になる

Page 12: WordBench Kobe jQueryどうでしょう

最低限必要なプログラミングの知識

• 上の行から下の行へ、1行ずつ処理されます。

• 行の変わり目は改行ではなく、セミコロン「 ; 」です。

• 中括弧 { } でくくられた部分は、上から下への流れとは独立した処理になります。

• jQueryを使うにはこれくらいでOK

Page 13: WordBench Kobe jQueryどうでしょう

準備・1

• jQueryを読み込みましょう。読み込んだ位置よりあとで使えるようになります。<script src="jquery.js"></script>

• Googleから読み込むのが流行りです。理由:みんながGoogleから読みこめば、ブラウザのキャッシュに残るので、使いまわせる<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script>

Page 14: WordBench Kobe jQueryどうでしょう

準備・1

• 注意事項:jQueryは1回読みこめばOK。

たまにサンプルのコピペで何回も読み込んでいる人がいますが、動作不良の原因です。

Page 15: WordBench Kobe jQueryどうでしょう

準備・2

• DOMが読み込まれるのを待つ

• <script>$(document).ready(function(){// この中はDOMが読み込まれた後に実行される});</script>

• ※$(document).readyは$で代用可能

Page 16: WordBench Kobe jQueryどうでしょう

準備・2• 「$」というキーワードを使う

Javascriptライブラリが他にもあるので、WordPressではコンフリクト回避のために「$」が無効になっています。

• 一番楽な回避策<script>jQuery(document).ready(function($){// この中は$が使える});</script>

Page 17: WordBench Kobe jQueryどうでしょう

準備完了

• jQueryを使う準備は、この2ステップ

• それでは、jQueryで何ができるのかを見て行きましょう。ポイントは、DOMを選択して、指示を出すの2ステップ

• ドキュメントはこちら。復習にどうぞhttp://api.jquery.com/

Page 18: WordBench Kobe jQueryどうでしょう

Selectors

• まずDOMを選択。CSSと同じ感覚でHTMLの要素を選択できる

• $(‘#id’) $(‘.class’) $(‘p’)

• $(‘.class1, .class2, .class3’)

• 選択したら、指示を出すだけ

Page 19: WordBench Kobe jQueryどうでしょう

Selectors Filter

• 条件付きで絞り込める

• $(‘ul li:first’) // 最初の要素

• $(‘ul:first-child’) // 最初の子要素↑同じ

• $(‘ul li:odd’) // 奇数要素

• $(‘ul li:not(.current_page_item))// 除外

Page 20: WordBench Kobe jQueryどうでしょう

Attributes

• 要素の属性を変更できる

• $(‘p’).addClass(‘hoge’);// classを追加

• $(‘img’).attr(‘alt’); // 属性を取得

• $(‘img’).attr(‘alt’, ‘great photo’);// 属性を変更

Page 21: WordBench Kobe jQueryどうでしょう

CSS

• CSSを直接変更できる

• $(‘p’).css(‘color’, ‘red’);// p { color: red; }

• $(‘p’).css({ 'background-color' : '#ddd', 'font-weight' : 'bold', 'color' : 'rgb(0,40,244)'}); // 一括指定

Page 22: WordBench Kobe jQueryどうでしょう

Traversing• 日本語で探索?とでも言いましょうか…

• $('li.current_menu_item') .children() .css('background-color', 'red');

• ul+ li.current_menu_item + a ←これだけに反映+ li + a

Page 23: WordBench Kobe jQueryどうでしょう

メソッドチェイン

• 先ほどのページのサンプル。

• $('li.current_menu_item') .children() .css('background-color', 'red');

• 一度DOMを選択すれば、あとは何度でも指示を出すことができます。

Page 24: WordBench Kobe jQueryどうでしょう

Traversing

• 1行でいろいろできちゃう

• $('ul.menu').css('color','red') .children() .filter('.current_menu_item') .css('font-weight','bold') .parent() .find('span') .css('color','green');

Page 25: WordBench Kobe jQueryどうでしょう

こうなりました。

Page 26: WordBench Kobe jQueryどうでしょう

• DOMの操作

• $('div').append('<p>Test</p>');// divの中(末尾)に追加

• $('div').prepend('<p>Test</p>');// divの中(先頭)に追加

Manipulation

Page 27: WordBench Kobe jQueryどうでしょう

Events• // 要素をクリックしたときに処理を行う

$("#target").click(function() { $(‘p’).css(‘color’,‘red’);});

• $("#target").hover(function() { // マウスが乗ったとき $(‘p’).css(‘background-color’,‘red’);},function(){ // マウスが外れたとき $(‘p’).css(‘background-color’,‘inherit’);});

Page 28: WordBench Kobe jQueryどうでしょう

Effects• エフェクトが一番おなじみかも

• $("#target").click(function() { $(‘p’).fadeIn(); // フェードイン});

• $("#target").click(function() { $('p').animate({ 'opacity':'0.25', 'margin-left':'+=500‘ // +500px }, 500);});

• animateは色が使えないので注意

Page 29: WordBench Kobe jQueryどうでしょう

jQueryは短く書くのが流儀• Javascirptが書ける人はこうしがち

var p = $('p');if ( p.className == 'test' ) { p.addClass('add');}

• jQuery流ならエレガント!$(‘p.test’).addClass(‘add’);

• TraversingのAPIはぜひ活用しましょう。if文は書かない

Page 30: WordBench Kobe jQueryどうでしょう

他にもまだまだあります。

• jQueryでできることはたくさんあります。

• 全部覚えるのは大変だし、結局大変なので、jQueryプラグインを使いましょう。

Page 31: WordBench Kobe jQueryどうでしょう

ここで急に飛びまして…

Page 32: WordBench Kobe jQueryどうでしょう

カルーセルUIの神プラグイン

Page 33: WordBench Kobe jQueryどうでしょう

カルーセルとは?

Page 34: WordBench Kobe jQueryどうでしょう

carouFredSelはここがすごい

• どんなHTML要素でもカルーセルにできる。1つのアイテムでも、複数のアイテムでもOK。

• 水平でも垂直でもOK。

• 最後まで行ったらとまるか、繰り返しかも自由

• レスポンシブ対応!

Page 35: WordBench Kobe jQueryどうでしょう

柔軟なオプション

• 設定項目が豊富。あらゆるデザインに対応http://caroufredsel.frebsite.nl/configuration.php

• 地味に嬉しいイベント充実。カルーセルの切り替わりのタイミングで別の処理を挟み込んだり、一時停止したり、思うがままhttp://caroufredsel.frebsite.nl/custom-events.php

Page 36: WordBench Kobe jQueryどうでしょう

設定ロボット君が親切

http://caroufredsel.frebsite.nl/configuration-robot.php

• 質問に答えていくだけでjQueryを書いてくれるロボット君!

• サンプルのコピペからはオサラバです

Page 37: WordBench Kobe jQueryどうでしょう

クールなサンプル集

http://coolcarousels.frebsite.nl/

Page 39: WordBench Kobe jQueryどうでしょう

WordPressと相性がいい

• どんなHTMLの構造でもほぼ対応できる

• HTMLがある程度決まってくるCMSの場合でも安心!