アニメーションの続き
今日から簡単なアニメーションjQuery!
2-6章では簡単な
show()、hide()、fadeあたりが登場してきます。
まずはshow()!
参考書では<button>をクリックするとdiv要素を表示させる命令が例としてあげられていました。
参考書にも書いてありましたが、jQueryはcssと合わせて記述しないと動きません。
div要素をCSSでdisplay: none;にしておいてからのjQueryでshow()にする命令をします。
ググるといろんなjQueryが紹介されていますが、やはりCSSとjQuery合わせて紹介されていますよね。
あと、コールバック!
jQueryのアニメーションが終わった後の処理なんかも指定できます。
$(' セレクタ ').show( ' スピード ',コールバック関数 );
で指定してあげます。
参考書ではshow()のあとにdiv要素の背景を赤から青に指定してあげています。
コールバック関数と合わせて考えると、いろいろな動きが出来そうです!
今日はここまでです。
ちょっと短くなってしまいました。。明日はもう少しかけるよう頑張ります。(^ ^;;
Ajaxを使ってみよう
参考書の2-5になると、Ajaxが登場しました。
正直「Ajax」ってなんだろう。。という感じで今まで触れてこなかった分野です。ですがさすがドーナツ本、すごく解りやすく解説されていました。
html内にあるリンクをクリックすると別のhtmlを読み込みますね。ですがhtmlを読み込むのに時間がかかってしまうのだそう。なのでAjaxを使ってページを切り替えずに一部だけを書き換えることで、非常にWebページとして操作しやすくなります。
出てきたjQueryが「load()」です。
自分でtest.htmlを作ってみたのですが、
まずheader内のscriptを
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
こいつに書き換えました。参考書もこれになっていたので。
それと参考書にも書かれていましたが、どうやらGoogle ChromeではAjaxが実現できない模様です。なのでSafariなど別のブラウザでブラウザ表示しなければなりません。
どうしてもChromeで見たい場合はローカルでサーバー環境を作ることです!
load()カッコ内の記述はいたってシンプルです!
とりあえず気を付けたいのが、書き換える場所の要素を
$(' p ').load(' ./sample02.html p ');
と書いてしまうと、pタグを置き換えるときにpタグの入れ子が発生する事態に…。
<p><p>置き換えられた後のテキスト</p></p>
ここはdivで外側を囲うことで回避するのが良いようです。
$(' div ').load(' ./sample02.html p ');
Ajaxはまだまだ何かありそうですが、参考書はこのくらいのようです。
明日からいよいよアニメーション効果で動きをつけます!
予告ですが、近々新しくサーバーを借りてWordpressで自分のブログを作ろうと思っています。はてなブログでは学んだことを書くだけで終わってしまいますから。。
自分の好きなようにWordpressをカスタマイズして、ブログをつけていきたいです~。
jQueryのテストも実現できるのではないかと期待しています‼
しばしお待ちを‼‼
フォームの続き
①フォームの内容変更を感知するchange()
<select>
<option value="お名前">個人</option>
<option value="会社名">法人</option>
</select>
<p><span>お名前</span><input type="text"></p>
<script>
$(function(){
$('select').change(function(){
$('span').text($(this).val());
});
});
</script>
$('form').submit(function(){
if($('input[name="name"]').val()==''){
if($('span').css('font-weight')!= 'bold'){
$('input[name="name"]').css('border', '1px solid red').after('<span>名前を入力してください</span>');
$('span').css({
'color': 'red',
'font-weight': 'bold'
});
}
return false;
}
});
});
$('input[type="checkbox"]').click(function() {
$('label').css('background', '');
$(':checked').each(function(){
$('label[for="'+ $(this).attr('id') +'"]').css('background', '#ccc');
});
});
});
フォーム機能を使いこなそう val()
これからフォームをjQueryで操作していきます。
前回に引き続き、自分のメモのような感じで書いていきます。
<button>確認</button>
<script>
$(function(){
$('button').click(function(){
$('p').text($('input').val() + 'にメールします');
$('button').text('送信');
});
});
</script>
<script>
$(function(){
$('button').click(function(){
$('input').val('');
});
});
</script>
<script>
$(function(){
$('input').val('入力してください').css('color', '#ccc').one('focus', function(){
$(this).val('').css('color', '#000');
});
});
</script>
<script>
$(function(){
$('input').val('入力してください').css('color', '#ccc').one('focus', function(){
$(this).val('').css('color', '#000');
}).blur(function(){
if($(this).val()==''){
$(this).val('入力してください').css('color', '#ccc').one('focus',function(){
$(this).val('').css('color', '#000');
});
}
});
});
</script>
if文も覚えていきます。if文はいろいろな場面に登場していくので、絶対に使いこなしたいです!
次回もフォームをやっていきます。実はまだまだ参考書の前半だったり…。
イベントでタイミングを設定する
続きまして、
参考書『Web制作の現場で使うjQueryデザイン入門』の2-3にあたります。
$('button').click(function() {
/* Act on the event */
});
});
<p><img src="images/01.jpg" alt="01"></p>
<script>
$(function(){
$('button').click(function(){
$('img').attr('src', 'images/02.jpg').attr('alt', '02');
});
});
</script>
<p><img src="images/01.jpg" alt="01"></p>
<script>
$(function(){
$('a').click(function() {
$('img').attr('src', 'images/02.jpg').attr('alt', '02');
return false;
});
});
</script>
<li><a href="images/01.jpg" alt="01">01</a></li>
<li><a href="images/02.jpg" alt="02">02</a></li>
<li><a href="images/03.jpg" alt="03">03</a></li>
</ul>
<p><img src="images/04.jpg" alt="04"></p>
<script>
$(function(){
$('a').click(function(){
$('img').attr('src', $(this).attr('href')).attr('alt', $(this).text());
return false;
});
});
</script>
<p><img src="images/01.jpg" alt="01"></p>
<script>
$(function(){
$('button').dblclick(function() {
$('img').attr('src', 'images/02.jpg').attr('alt', '02');
});
});
</script>
<p><img src="images/01.jpg" alt="01"></p>
<script>
$(function(){
$('a').dblclick(function() {
$('img').attr('src', $(this).attr('href')).attr('alt', $(this).text());
}).click(function(){
return false;
});
});
</script>
<p></p>
<script>
$(function(){
$('img').mousemove(function(e) {
$('p').html('現在のX座標は'+ e.clientX +'<br>現在のY座標は'+e.clientY);
});
});
</script>
<li><a href="images/01.jpg">01</a></li>
<li><a href="images/02.jpg">02</a></li>
<li><a href="images/03.jpg">03</a></li>
</ul>
<p><img src="images/04.jpg" alt="04"></p>
<script>
$(function(){
$('ul').on('click', 'a', function(){
$('img').attr('src', $(this).attr('href')).attr('alt', $(this).text());
return false;
});
});
</script>
<ul>
<li><a href="images/01.jpg">01</a></li>
<li><a href="images/02.jpg">02</a></li>
<li><a href="images/03.jpg">03</a></li>
</ul>
<p><img src="images/04.jpg" alt="04"></p>
<script>
$(function(){
$('a').click(function(){
$('img').attr('src', $(this).attr('href')).attr('alt', $(this).text());
return false;
});
$('button').click(function(){
$('ul').append('<li><a href="images/04.html">04</a></li>');
});
});
</script>
$('ul').on('click', 'a', function(){
$('img').attr('src', $(this).attr('href')).attr('alt', $(this).text());
return false;
});
$('button').click(function(){
$('ul').append('<li><a href="images/04.jpg">04</a></li>');
});
});
HTML/CSSを操作するjQueryの命令(続き)
前回のブログに引き続き、HTML・CSSを操作する命令について書いていきます。
<script>
$(function(){
$('a').attr('href', 'http://yahoo.co.jp/');
});
</script>
<script>
$(function(){
$('a').text($('a').attr('href'));
});
</script>
<script>
$(function(){
$('a').removeAttr('target');
});
</script>
<script>
$(function(){
$('p').css({
'background-color': 'yellow',
'font-weight': 'bold',
'color': 'red'
});
});
</script>
<script>
$(function(){
$('p').prepend('<strong>先頭に挿入</strong>').append('<strong>後ろに挿入</strong>');
});
</script>