2009年12月16日

jQueryでIE6を透過PNGに対応させる

人気ブログランキングにほんブログ村 IT技術ブログへ

インターネットエクスプローラーのバージョン6(IE6)では、透過PNGという半透明の画像をそのまま表示させることができません。通常は画像の背景が灰色で塗りつぶされてしまいます。

しかしIEシリーズにはfilterと呼ばれる独自のメソッドがあり、その中のAlphaImageLoaderを使うとちゃんと透過PNGが表示されます。

ですので、前回のjQueryで作るロールオーバーで作成したメニューを改良して、IE6でも表示できる半透明のメニューを作りました。

注意点はli要素とimg要素にwidthとheightを同じに設定するところです。チュートリアルをちゃんと読んでいなかったがためにこの設定を見逃し、メニューが何も表示されないまま小一時間ほど悩んでしまいました。  続きを読む

Posted by ヒダカ at 20:34Comments(0)jQuery

2009年12月12日

jQueryで作るロールオーバー

人気ブログランキングにほんブログ村 IT技術ブログへ

ロールオーバーとはリンク画像などにカーソルを乗せた際、別の画像と置換することをいいます。

cssでも背景画像を換えることによって実現できますが、画像に文字が埋めてある場合はリンクテキストをindent:-9999pxなどで画面の外に出さなければなりません。

最近まではよくある方法だったのですが、どうもgoogleはこの方法を悪く評価するらしい、と噂で聞いたのでロールオーバーはjQuery(Javascript)を利用する方法が多くなるかもしれません。  続きを読む

Posted by ヒダカ at 18:00Comments(0)jQuery

2009年12月11日

jQueryで作るオリジナルツールチップ

人気ブログランキングにほんブログ村 IT技術ブログへ

今回はリンクや画像にカーソルを載せたときに表示される「ツールチップ」作成しました。

2種類作りましたがそれぞれ作り方が違います。

1つ目はリンクの後にツールチップの内容を書きます。スクリプトを工夫することにより、リンクとツールチップを後から増やしてもスクリプトを変更しなくてもいいようにしました。ただし、Javascriptがオフの環境ではレイアウトか崩れ見た目が悪くなります。

2つ目はツールチップを最後に置いてあります。これによりJavascriptがオフの環境でもレイアウトは比較的キレイで見やすいです。ただし、ツールチップを増やすのにかなり複雑なスクリプトになる・・・と思います。  続きを読む

Posted by ヒダカ at 23:44Comments(0)jQuery

2009年12月10日

jQueryで作るタブパネル

人気ブログランキングにほんブログ村 IT技術ブログへ

前回製作したアコーディオンパネルと同様に、限られたスペースを有効に使えるタブパネルを作りました。

難しかった場所はスクリプトに出てくる、

li:not("+$("ul.tab li a.selected").attr("href")+")

という部分でした。訳すと「クラス"tab"を持つul要素以下のli要素以下のクラス"selected"を持つa要素の属性値と一致しないli要素」になります。

これでまずselectedが設定されているa要素意外に対応するpanelを指定したことになり、それをhide()で隠しています。

あと今回は、メニューリストの部分にCSS3を使ってグラデーションをかけてみました。
safariやgoogle chromeで見ると綺麗なグラデーションがかかっています。  続きを読む

Posted by ヒダカ at 18:00Comments(0)jQuery

2009年12月09日

jQueryで作るアコーディオンパネル

人気ブログランキングにほんブログ村 IT技術ブログへ

webサイトの限られたスペースを有効使うことができる「アコーディオンパネル」をチュートリアルに沿って作ってみました。

その中で分からなかったことが一つ。スクリプトで出てくる

$("+dd",this).slideDown("slow");

上記のthisがよくわかりませんでした。

全体的に「現在参照されている要素の次のdd」というセレクタであることはわかるのですが、セレクタのあとに,thisなんて使い方をはじめて知ったので、そんな使い方もあるんだなと。

こういうのはgoogleでも検索しにくいんですよね。this自体がありふれた単語なので。  続きを読む

Posted by ヒダカ at 18:00Comments(0)jQuery

2009年11月29日

jQueryでイメージギャラリーを作成。

人気ブログランキングにほんブログ村 IT技術ブログへ

jQueryでイメージギャラリーを作成するチュートリアルを試してみました。

今までのチュートリアルを総合したような内容です。

元のチュートリアルと1点違う箇所があります。クリックした画像を表示し、元の画像をフェードアウトする部分ですが、フェードアウトさせる画像を選択するのに、:lastフィルターではなく、:not(:first)を使っています。

これは:lastのとき、アニメーションが終わる前にサムネイルを連続して複数クリックすると、画像がフェードアウトされず大量に残ったままになってしまったからです。見た目は変わりませんが気づかずにクリックしていると動作が非常に重くなりました。

そこで、「最後の画像」ではなく「最初以外の画像」を指定したところ、一旦大量の画像が生成されても、最後にクリックした画像がのみ表示されるようになりました。  続きを読む

Posted by ヒダカ at 17:58Comments(0)jQuery

2009年11月25日

jQueryでストライプの装飾 :nth-child()

人気ブログランキングにほんブログ村 IT技術ブログへ

jQueryでテーブルにストライプで装飾するチュートリアルを試してみました。

jQueryで動的に装飾するので、後からデータを追加・削除してもcssやhtmlをいじる必要がまったく無いのが利点です。

キーとなるフィルターは:nth-child()

nth-child()

セレクターで指定した要素のうち、n番目の要素を選択する。()内はeven(偶数) odd(奇数) 2(2番目) 3n(3の倍数) 3n+1(3n+1番目)など。  続きを読む

Posted by ヒダカ at 17:15Comments(0)jQuery

2009年11月23日

jQueryでのアニメーション animate()

人気ブログランキングにほんブログ村 IT技術ブログへ

jQueryでアニメーションの付いた画像の表示非表示が出来る命令の紹介その4。今回は独自のアニメーションを作成するanimate()。

animate()

セレクタで指定した要素に、指定したcssプロパティ、スピード、動き、コールバック関数でアニメーションできる。
  続きを読む

Posted by ヒダカ at 17:20Comments(0)jQuery

2009年11月22日

jQueryのアニメーションfadeIn Out To

人気ブログランキングにほんブログ村 IT技術ブログへ

jQueryでアニメーションの付いた画像の表示非表示が出来る命令の紹介その3。今回は透明度を変えて表示・非表示するアニメーション。

fadeIn()


セレクタで指定したdisplay:noneの要素をフェードインのアニメーションで表示する。引数はミリ秒またはslow,norma,fastを指定できる。
コールバック関数も指定できる。

fadeOut()

fadeIn()の逆でセレクタで指定した要素をフェードアウトのアニメーションで非表示にする。他はfadeIn()と同じ。

fadeTo()

引数で指定した透明度にフェードイン/アウトする。他はfadeIn()と同じ。
  続きを読む

Posted by ヒダカ at 19:15Comments(0)jQuery

2009年11月20日

jQueryのアニメーションslideUp Down 他

人気ブログランキングにほんブログ村 IT技術ブログへ

jQueryでアニメーションの付いた画像の表示非表示が出来る命令の紹介その2。今回は縦にアニメーションする。

slideDown()

セレクタで指定したブロック要素をdisplay:noneからblockへ切り替える。その際のアニメーションは上から下。()内はミリ秒またはslow,norma,fastを指定できる。
コールバック関数も指定できる。

slideUp()

slideDown()の逆でdisplay:blockからnoneへ切り替える命令。アニメーションは下から上。他はslideDown()と同じ。

slideToggle()

slideDown()とslideUp()を交互に行う命令。他はshow()と同じ。

スクリプトを書いている途中で気が付いたが、アニメーションさせる要素のwidthが指定されていないと期待する挙動が出ない。

今回のslideUp()、slideDown()、slideToggle()は、アニメーションさせるimg要素にwidthが指定されていなかった場合、前回のshow()、hide()と同じ左上から右下(左下から右上)のアニメーションで表示・非表示された。  続きを読む

Posted by ヒダカ at 18:44Comments(0)jQuery

2009年11月18日

jQueryのアニメーションshow hide toggle

人気ブログランキングにほんブログ村 IT技術ブログへ

jQueryでアニメーションの付いた画像の表示非表示が出来る命令の紹介。

show()

セレクタで指定したブロック要素のdisplayをnoneからblockへ切り替える。()内はミリ秒またはslow,norma,fastを指定できる。
コールバック関数も指定できる。

hide()

showの逆でdisplayをblockからnoneへ切り替える命令。他はshow()と同じ。

toggle()

show()とhide()を交互に行う命令。他はshow()と同じ。  続きを読む

Posted by ヒダカ at 18:33Comments(0)jQuery

2009年11月17日

Ajaxで良く使う命令 セレクタ毎に命令実行するeach()

人気ブログランキングにほんブログ村 IT技術ブログへ

each()はAjaxで良く使う命令。セレクタ毎に命令を実行する。

例えば、表のtd要素それぞれに異なった計算結果を表示したい場合に使える。  続きを読む

Posted by ヒダカ at 18:00Comments(0)jQuery

2009年11月16日

Ajaxを利用する命令 XMLを取得・操作するajax()

人気ブログランキングにほんブログ村 IT技術ブログへ

ASCII.jp:jQueryでAjaxを利用する基本チュートリアル|Web制作の現場で使えるjQuery UIデザイン入門

上記リンクを参考に実際に書いてみた。

ajax()という命令を使い、このブログのrssを取得してみました。

チュートリアルでは<discription>で記事の概要を取得していますが、このブログは私の書き方が悪く現時点で概要にすべての内容を書いています。

ですので<discription>のかわりには<pubDate>で更新日時を表示しています。


コードは以下の通り。
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
$.ajax({
url:'http://webdesign.naganoblog.jp/index.xml',
dataType:'xml',
success:function(data){
$("item",data).each(function(){
$("#ajax dl").append("
"+$("title",this).text()+"
"+$("pubDate",this).text()+"
");
});
}
});
})
</script>

<div id="ajax">
<dl></dl>
</div>
  

Posted by ヒダカ at 18:18Comments(0)jQuery

2009年11月14日

Ajaxを利用するための命令 ファイルを読み込むload()

人気ブログランキングにほんブログ村 IT技術ブログへ

ASCII.jp:jQueryでAjaxを利用する基本チュートリアル|Web制作の現場で使えるjQuery UIデザイン入門

上記リンクを参考に実際に書いてみた。

load()は指定したテキストファイルやhtmlファイルを読み込む命令。
注意として、文字コードがutf-8推奨、同一ドメインのファイルしか読み込めない、などなど。

以下は、loadボタンを押すとサイドバーの「最新の記事」(正確にはトップページのサイドバーにある「最新の記事」)をボタンの下に読み込みます。

ここに読み込みます。



コードは以下の通り。
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
$("#load button").click(function(){
$("#load div").load("http://webdesign.naganoblog.jp/ div.recententry");
});
})
</script>

<div id="load">
<button>load</button>
<div><p>ここに読み込みます。</p></div>
</div>
  

Posted by ヒダカ at 18:00Comments(0)jQuery

2009年11月13日

フォーム専用のフィルターその他2

人気ブログランキングにほんブログ村 IT技術ブログへ

ASCII.jp:jQueryによるフォームのデザインの基礎(前編)|Web制作の現場で使えるjQuery UIデザイン入門

上記リンクを参考に実際に書いてみた。

チェックされたcheckboxを選択する:checkedと、選択された要素を選択する:selectedの紹介。

リンク先の例以外にどうやって使うかで色々と悩んでしまったので、今回は例が私にはちょっと複雑だったのもあって、一行ずつ解説をつけるだけにしておきます。

:checkedの例の解説
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
//label要素またはcheckboxがクリックされた時に以下を実行
$("label,:checkbox").click(function(){
//label要素の背景色を一旦リセットする
$("label").css("background","")
//選択されている(checked)要素すべてに以下を実行
$(":checked").each(function(){
//for属性の属性値が選択されているcheckboxのidと同じlabelに対して、背景色を#CCCに変更
$("label[for='"+$(this).attr("id")+"']").css("background","#CCC")
})
})
})
</script>


<input type="checkbox" name="xhtml" value="XHTML" id="xhtml" />
<label for="xhtml">XHTML</label>
<input type="checkbox" name="css" value="CSS" id="css" />
<label for="css">CSS</label>
<input type="checkbox" name="javascript" value="JavaScript" id="javascript" />
<label for="javascript">JavaScript</label>
<input type="checkbox" name="php" value="PHP" id="php" />
<label for="php">PHP</label>



:selectedの解説
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
$(function(){
//select要素に変更があったとき以下を実行
$("select").change(function(){
//もし選択されている要素の値が"10代"ならば以下を実行
if($(":selected").attr("value")=="10代"){
//input要素のdisabled属性の属性値をdisabledに変更
$("input").attr("disabled", "disabled");
//"10代"以外ならば以下を実行
}else{
//input要素のdisabled属性を削除
$("input").removeAttr("disabled");
}
})
})

<p>年齢:
<select name="age">
<option value="選択してください">選択してください</option>
<option value="10代">10代</option>
<option value="20代">20代</option>
<option value="30代">30代</option>
<option value="40代以上">40代以上</option>
</select></p>
<p>好きなお酒:<input type="text" /></p>
  

Posted by ヒダカ at 18:00Comments(0)jQuery

2009年11月11日

フォーム専用のフィルターその他1

人気ブログランキングにほんブログ村 IT技術ブログへ

ASCII.jp:jQueryによるフォームのデザインの基礎(後編)|Web制作の現場で使えるjQuery UIデザイン入門

上記リンクを参考に実際に書いてみた。

:inputフィルターよりもさらに細かく指定するフィルターの紹介

:text :password :radio :checkbox :submit :image :reset :file :button

以下は要素がフォーカスされるとその内容をフォームの下に表示します。

最初に一番上のテキストボックスにカーソルを当てた後、Tabボタンでフォーカスを移動してください。


type属性がtext
type属性がpassword
type属性がradio
type属性がcheckbox
type属性がsubmit
type属性がimage
type属性がreset
type属性がfile
type属性がbutton

コードは以下の通り。
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
$("#inputtype :text").focus(function(){$("#inputtype form").after("

type属性がtextであるinput要素がフォーカスされています。

");}).blur(function(){$("#inputtype>p").remove();});
$("#inputtype :password").focus(function(){$("#inputtype form").after("

type属性がpasswordであるinput要素がフォーカスされています。

");}).blur(function(){$("#inputtype>p").remove();});
$("#inputtype :radio").focus(function(){$("#inputtype form").after("

type属性がradioであるinput要素がフォーカスされています。

");}).blur(function(){$("#inputtype>p").remove();});
$("#inputtype :checkbox").focus(function(){$("#inputtype form").after("

type属性がcheckboxであるinput要素がフォーカスされています。

");}).blur(function(){$("#inputtype>p").remove();});
$("#inputtype :submit").focus(function(){$("#inputtype form").after("

type属性がsubmitであるinput要素がフォーカスされています。

");}).blur(function(){$("#inputtype>p").remove();});
$("#inputtype :image").focus(function(){$("#inputtype form").after("

type属性がimageであるinput要素がフォーカスされています。

");}).blur(function(){$("#inputtype>p").remove();});
$("#inputtype :reset").focus(function(){$("#inputtype form").after("

type属性がresetであるinput要素がフォーカスされています。

");}).blur(function(){$("#inputtype>p").remove();});
$("#inputtype :file").focus(function(){$("#inputtype form").after("

type属性がfileであるinput要素がフォーカスされています。

");}).blur(function(){$("#inputtype>p").remove();});
$("#inputtype :button").focus(function(){$("#inputtype form").after("

type属性がbuttonであるinput要素がフォーカスされています。

");}).blur(function(){$("#inputtype>p").remove();});
})
</script>

<div id="inputtype">
<form>
<p>
<input type="text" />type属性がtext<br />
<input type="password" />type属性がpassword<br />
<input type="radio" />type属性がradio<br />
<input type="checkbox" />type属性がcheckbox<br />
<input type="submit" />type属性がsubmit<br />
<input type="image" />type属性がimage<br />
<input type="reset" />type属性がreset<br />
<input type="file" />type属性がfile<br />
<input type="button" value="button" />type属性がbutton
</p>
</form>
</div>
  

Posted by ヒダカ at 18:00Comments(0)jQuery

2009年11月05日

フォーム部品を選択するフィルター :input

人気ブログランキングにほんブログ村 IT技術ブログへ

ASCII.jp:jQueryによるフォームのデザインの基礎(後編)|Web制作の現場で使えるjQuery UIデザイン入門

上記リンクを参考に実際に書いてみた。

:inputフィルターはフォームの部品を一括して指定するフィルター。

input、textarea、select要素にwidth:180px、margin-bottom:10pxを設定しました。






コードは以下の通り。
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
$("#input :input").css("width","180px").css("marginBottom","10px");
})
</script>

<div id="input">
<form>
<input type="text" value="テキストフィールド" /><br />
<textarea>テキストエリア</textarea><br />
<select>
<option>選択1</option>
<option>選択1</option>
<option>選択1</option>
<option>選択1</option>
<option>選択1</option>
</select><br />
<input type="button" value="汎用ボタン"/><br />
<input type="submit"value="送信ボタン"/>
</form>
</div>
  

Posted by ヒダカ at 18:00Comments(0)jQuery

2009年11月03日

フォームで使う命令submit() 送信を感知

人気ブログランキングにほんブログ村 IT技術ブログへ

ASCII.jp:jQueryによるフォームのデザインの基礎(前編)|Web制作の現場で使えるjQuery UIデザイン入門

上記リンクを参考に実際に書いてみた。

submit()命令は「送信」ボタンが押されたことを感知する命令。

チェックボックスをチェックしないで「送信」ボタンを押すと、「同意してください」とアラートが出ます。その後に、return false;で送信をキャンセルしています。。


同意します

コードは以下の通り。
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
$("#submit form").submit(function(){
if ($("#submit input[type='checkbox']").attr("checked") == "") {
window.alert("同意してください");
return false;
}
});
})
</script>

<div id="submit">
<form action="#" method="post">
<p><input type="checkbox" />同意します<br /><input type="submit" value="送信" /></p>
</form>
</div>
  

Posted by ヒダカ at 19:14Comments(0)jQuery

2009年11月02日

フォームで使う命令change() 部品の内容の変更を察知

人気ブログランキングにほんブログ村 IT技術ブログへ

ASCII.jp:jQueryによるフォームのデザインの基礎(前編)|Web制作の現場で使えるjQuery UIデザイン入門

上記リンクを参考に実際に書いてみた。

change()命令はフォーム部品の内容が変わったのを察知する。

セレクトボックスから色を選ぶと「SAMPLE」がその色に変わるようにしています。

これはchange()が内容の変更を察知したときに、色に対応したoptionのvalueでp要素のcssを変更しているためです。


SAMPLE


コードは以下の通り。
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
$("#change select").change(function(){
$("#change p").css("color",$(this).val());
});
})
</script>

<div id="change">
<form>
<select>
<option value="black">黒</option>
<option value="red">赤</option>
<option value="blue">青</option>
<option value="green">緑</option>
</select>
<p style="font-size:50px;">SAMPLE</p>
</form>
</div>
  

Posted by ヒダカ at 15:13Comments(0)jQuery

2009年10月30日

フォームで使う命令focus(),blur()

人気ブログランキングにほんブログ村 IT技術ブログへ

ASCII.jp:jQueryによるフォームのデザインの基礎(前編)|Web制作の現場で使えるjQuery UIデザイン入門

上記リンクを参考に実際に書いてみた。

focus()命令とblur()命令で、フォーカスされた時/外れた時の挙動を制御できます。

以下はフォーカスされたテキストフィールドの文字を消して背景の色を変えます。
フォーカスが外れると背景色は元に戻ります。

記入事項1:
記入事項2:
記入事項3:


コードは以下の通り。
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
$("#focus input").focus(function(){
$(this).css("backgroundColor","#ffffcf");
}).one("focus",function(){
$(this).val("");
});
$("#focus input").blur(function(){
$(this).css("backgroundColor","#fff");
});
})
</script>

<div id="focus">
<form>
<p>記入事項1:<input type="text" value="例1" /><br />
記入事項2:<input type="text" value="例2" /><br />
記入事項3:<input type="text" value="例3" /></p>
</form>
</div>
  

Posted by ヒダカ at 13:28Comments(0)jQuery