Takeshi Takatsudo (mail) @2010.06.19
JavaScriptに限らず、大体こんな感じ。
大丈夫です。
<script type="text/javascript" src="jquery.js"></script>
これで準備OK
$('#sample1').hide();
$('#sample1').show();
$('#sample1').fadeOut();
$('#sample1').fadeIn();
$ ←これjQuery
あとは組み合わせ。
$('#sample1')
sample1というidが付いた要素を取ってきて…
$('#sample1').hide(); // 隠す
$('#sample1').show(); // 表示させる
$('#sample1').fadeOut(); // フェードアウト
$('#sample1').fadeIn(); // フェードイン
それに何かする。jQueryがやるのは大体こんなこと。
jQuery使用前


$(犬)


$(犬).show();
サイヤ人.かめはめ波();
jQueryObject.method();
とりあえず初めにこれは覚えておく。
$(function(){
$('#sample1').show();
});
JavaScriptでページ上の何かを操作するとき、ページの読み込みを待つ必要がある。上のコードを書くと、その中身は、ページの読み込みが完了したら実行される。
※これも本当はブラウザごとに色々問題があるんだけど、上のように書けばjQueryがうまくやってくれる!
基本的にCSSのソレと同じ。
$('#sample1').show(); // idがsample1な要素
$('.sample1').show(); // classがsample1な要素
$('div').show(); // div全部
$('*')show(); // 全要素
jQueryが頑張ってくれるのでIE6、7でも色々使えます。
$('.sample1[href=hoge]').show();
// hrefがhogeでclassがsample1な要素
$('#sample1 > div').show();
// #sample1直下のdiv
$('#sample1 + div').show();
// #sample1の直後のdiv
jQuery独自のセレクタやCSS3も使える。
$('tr:even').show(); // 偶数番目のtr
$(':image').show(); //input[type=image]
$('input:disabled').show();
// disabledになってるinput
$('.hoge:not(#foo)').show();
// クラスがhogeでidがfooじゃない要素
$('.hoge').find('p').show();
<div class="hoge">
<blockquote>
<p>text text</p>
<p>text text</p>
</blockquote>
<p>text text</p>
<p>text text</p>
</div>
$('.hoge').children().show();
<div class="hoge">
<blockquote>
<p>text text</p>
<p>text text</p>
</blockquote>
<p>text text</p>
<p>text text</p>
</div>
$('#hoge').prev().show();
<div>
<blockquote>
<p>text text</p>
<p id="hoge">text text</p>
<p>text text</p>
</blockquote>
</div>
$('#hoge').next().show();
<div>
<blockquote>
<p>text text</p>
<p id="hoge">text text</p>
<p>text text</p>
</blockquote>
</div>
$('#hoge').parent().show();
<div>
<blockquote>
<p>text text</p>
<p id="hoge">text text</p>
<p>text text</p>
</blockquote>
</div>
$('#hoge').parent().parent().show();
<div>
<blockquote>
<p>text text</p>
<p id="hoge">text text</p>
<p>text text</p>
</blockquote>
</div>
var blockquote = $('#hoge').parent();
blockquote.parent().show();
<div>
<blockquote>
<p>text text</p>
<p id="hoge">text text</p>
<p>text text</p>
</blockquote>
</div>
変数に保存してそこから探すのも可能。
CSSのプロパティ名と値を指定するだけ。
$('div.hoge').css('border','4px solid red');
ストライプのテーブルもできたり。
| 商品A | 100万円 | すごいいい | 買わないとだめ | 人生損する |
| 商品B | 200万円 | すごいいい | 買わないとだめ | 人生損する |
| 商品C | 80万円 | すごいいい | 買わないとだめ | 人生損する |
| 商品D | 30万円 | すごいいい | 買わないとだめ | 人生損する |
| 商品E | 2万円 | やばい | 買わないとだめ | 人生損する |
$('#productTable tr:odd td').css('background','#777');
よく使うのはショートカット的なメソッドがある。
$('#box').width(400); //≒.css('width',400)
$('#box').height(200); //≒.css('height',200)
pxは勝手に補完してくれたりもする。
表示、非表示も。
$('#box').show(); //≒.css('display','block')
$('#box').hide(); //≒.css('display','none')
spanだったら none ⇔ inline
opacityとかIE未対応だけどうまくやってくれる。
$('#box').css('opacity',0.3);
#代わりにfilter使ってる。
要素の中のテキスト変更
$('#box').text('ぼたもち');
要素の中のhtml変更

$('#box').html('<img src="imgs/memeta.gif" alt="" />');
要素の属性を変更

$('#img').attr('src','dog.jpg');
ショートカット。
$('#box').addClass('hoge');
$('#box').removeClass('hoge');
フェード

$('#box').fadeIn();
$('#box').fadeOut();
スライド

$('#box').slideDown();
$('#box').slideUp();
$('#box').slideToggle();
数値の値をとるCSSプロパティなら動かせる。
$('#box').animate({
'left' : '400px',
'top' : '100px'
});
append(後ろに加える)
var hoge = $('#hoge');
var fuga = $('#fuga');
hoge.append(fuga);
fuga.appendTo(hoge); でも同じ
prepend(前に加える)
var hoge = $('#hoge');
var fuga = $('#fuga');
hoge.prepend(fuga);
fuga.prependTo(hoge); でも同じ
要素を作って足す
var div = $('<div>divだよー</div>');
$('#hoge').append(div);
ページ上でJavaScript使う時って、
大体、クリックなりなんなりされて動かすことが多い。
何かが起こった時にスクリプトを実行させる仕組み
さっきからボタンで使ってますけど…
$('#box').click(function(){
$('#result').text('クリックされた');
});
マウスがのった時
$('#box').mouseover(function(){
$('#result').text('マウスのった');
});
マウスがのった時
$('#box').mouseout(function(){
$('#result').text('マウスおりた');
});
フォーカスされた時
$('#input').focus(function(){
$('#result').text('focusされた');
});
フォーカスが外れた時
$('#input').blur(function(){
$('#result').text('フォーカスはずれた');
});
この中(イベントハンドラ)のthisは、イベントが起こった要素
$('div.box').click(function(){
$(this).css('background','red');
});
# 犬がサイヤ人化
他の機能の一例を紹介します。
JavaScriptを普段書かない人にはしっくりこない内容かもしれませんが、頭の隅にでも置いておいてください。
値をセットするメソッドは、大体、値の取得もできる。
$('#hoge').attr('src','hoge.gif');
var foo = $('#hoge').attr('src');
console.log(foo); // hoge.gif
$('#hoge').height(300);
var foo = $('#hoge').height();
console.log(foo); // 300
各要素についてループできる。thisは今の要素を指す。
$('div.box').each(function(){
var text = $(this).text();
alert(text);
});
$.each()ってのもある。こっちはただの配列もループ処理できる
$(hoge)を、セレクタで評価。
$('#box').is('div');
// divか? true
$('#box').is(':hidden');
// 隠れているか? true
$('#box').is('.foo');
// classにfooがあるか? true
$('#box').is(':checked');
// チェックされているか? true
$('#box').is(':animated');
// アニメーション中か? true
用意されたものをどうにか組み合わせてみる。
「動く」状態をキープさせながら徐々に書く。
結局のところ、試行錯誤してみるしかないが、とりあえずここでは以下のような考えのもとに完成できたと仮定します。
まー自分が偉そうに言えたことじゃないですけど…
コードとはただ単にアイデアが具現化したもの。
JavaScriptが書けるようになりたいという人は
何をどうしたいんでしょう?
とりあえず書いてみることから始めましょう。
どうすればさっきのロールオーバーが作れる?
あれが作れるという発想に至る?
じゃあちょっと書いてみようかなとでも思う。
jQueryのanimationだのfadeInだの
どっかのスゲー人がこれを使いやすいように書いて、それがライブラリになってるってだけ。複雑なものは単純なものの組み合わせなだけ。
が重要だと思います。
jQueryはJavaScriptのコーディングを楽に、楽しくします。
どんどん色々書いてみましょう!
終わり
/
0 / 0