このページの本文へ

前へ 1 2 3 次へ

  • twitterでつぶやく
  • はてなブックマークに登録
  • del.icio.usに登録
  • livedoorクリップに登録
  • Buzzurlに登録
  • StumbleUponに登録
  • Google Bookmarksに登録
  • Facebookでシェア
  • Yahoo!ブックマークに登録
  • お気に入りに登録
  • 本文印刷

Web制作の現場で使えるjQuery UIデザイン入門 ― 第16回

透過PNG対応!jQueryでオリジナルツールチップ

2009年10月26日 11時00分更新

文● 西畑一馬/to-R


透過PNGで作るタイマー式のツールチップ

 3番目に紹介するのは、透過PNGを利用したツールチップです。透過PNGでは半透明の画像が作成できるため、デザイン性を重視したいときには便利ですが、いまだ利用者の多いIE6がサポートしていないため、実際の制作現場では扱いにくいのが難点です。ここでは、IE6で透過PNGを表示する方法を含めて解説します。また、このツールチップにはタイマー機能を持たせ、マウスアウト後、一定の時間が経ってから消えるようにしましょう(サンプル03)。

サンプル
サンプル03の完成画面。透過PNGを利用してツールチップに影を付けている

 HTML部分は以下のようになります。ツールチップに表示する内容は、class属性「tooltip」を付けたp要素で記述します。

サンプル03(HTML部分)


<p class="tooltip">
    これはASCII.jpの<br />
    <strong>Web制作の現場で使えるjQuery<br />
    UIデザイン入門</strong><br />
    のサンプルプログラムです
</p>


 CSSは次のようになります。透過PNGを利用する場合は、CSSの使い方がキモです。まず、p.tooltipに対して widthやheight、marginなどを設定し、ツールチップの基本的な形を整えます。透過GIFのときと同じように、position:absolute;を指定し、backgroundプロパティで「tooltip.png」という透過PNGファイルを背景に設定します。

 すでに説明したとおり、IE6はそのままでは透過PNGを表示できないため、IE6向けにはスターハックを利用して専用のスタイルを適用します。スターハックは、セレクターの前に「* html」を付けることで、IE6以下にだけ解釈できるCSSを記述する方法です。そのほかのブラウザーではスターハックで指定されたCSSは無視されます。

 IE6では、IE独自実装のfilterプロパティを利用すれば透過PNGを表示できます。filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/tooltip.png',sizingMethod='scale'); と非常に記述は長いですが、読み込む透過PNGファイル名を src='...' に記述するだけです。先に設定してある背景と画像が重ならないように、* html p.tooltipにはbackground:none;を追加してIE6以下の場合だけ背景画像を無効にしています。

サンプル03(CSS部分)


p.tooltip{
    margin:0;
    width:185px;
    height:86px;
    position:absolute;
    padding : 10px 20px 20px 10px;
    background:url("images/tooltip.png");
    font-size:small;
}
* html p.tooltip{
    background:none;
    filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/tooltip.png',sizingMethod='scale');
}


 スクリプト部分は以下のようになります。

サンプル03(スクリプト部分)


$(function(){
    $("p.tooltip").hide()
    $("a").mouseover(function(){
        $("p.tooltip").show().css({
            "top":$(this).offset().top-20+"px",
            "left":$(this).offset().left+$(this).width()+10+"px"
        });
    }).mouseout(function(){
        setTimeout(function(){
            $("p.tooltip").hide()
        },3000)
    })
})


 サンプル02と異なる点は、mouseoutイベントの設定です。一定の時間が経過した後にツールチップを非表示にするため、JavaScriptの命令 setTimeout()を使って記述しています。setTimeout()は、function(){...}内に実行したい処理の内容を、その後ろに実行のタイミングをミリ秒単位で指定します。ここでは、3000ミリ秒後にツールチップを非表示にするように処理を追加しました。


setTimeout(function(){
    $("p.tooltip").hide()
},3000)


 以上で、透過PNGを使ったタイマー式のツールチップが完成しました。


著者:西畑一馬(にしはた かずま)

著者写真

to-R代表、Webクリエイター。PHPによるシステム開発や、CMSを利用したWebサイト制作、SEO対策などのマーケティング、コンサルティング、Webクリエイター向けの講座などを業務で行なっている。また、ブログto-RではJavaScriptやSEO対策、CSS、Movable TypeなどのWeb制作にかかわるさまざまな情報を発信している。
主な著書に「現場のプロから学ぶXHTML+CSS」(共著、毎日コミュニケーションズ刊)がある。

前へ 1 2 3 次へ

カテゴリートップへ

この連載の記事

ASCII.jp会員サービス 週刊Web Professional登録

Webディレクター江口明日香が行く

みんなが買ってる最新アイテムはコレだ!

VOCALOID3 スターターIA ARIA ON THE PLANETES

VOCALOID3 スターターIA ARIA ON THE PLANETES

ヤマハ

17,745円〜

24人が購入

Google上位表示 64の法則 (WEB PROFESSIONAL)

Google上位表示 64の法則 (WEB PROFESSIONAL)

アスキー・メディアワークス

2,499円〜

71人が購入

標準HTML5タグリファレンス (WEB PROFESSIONAL)

標準HTML5タグリファレンス (WEB PROFESSIONAL)

アスキー・メディアワークス

2,205円〜

60人が購入

Speck MacBook Air 13型 See Thru - Clear SPK-MBA13-SEE-CLR

Speck MacBook Air 13型 See Thru - Clear SPK-MBA13-SEE-CLR

スペックコンピュータ

4,262円〜

23人が購入

jQuery Mobile スマートフォンサイト デザイン入門 (WEB PROFESSIONAL)

jQuery Mobile スマートフォンサイト デザイン入門 (WEB PROFESSIONAL)

アスキー・メディアワークス

2,499円〜

39人が購入

メモリーカード 32GB (PCH-Z321J)

メモリーカード 32GB (PCH-Z321J)

ソニー・コンピュータエンタテインメント

7,772円〜

9人が購入

Windows 7 Home Premium 通常版 Service Pack 1 適用済み

Windows 7 Home Premium 通常版 Service Pack 1 適用済み

マイクロソフト

20,271円〜

4人が購入

iPhone 4S/4 防指紋性・高光沢機能性フィルム PRO GUARD AF for iPhone 4S/4 / PGAF-IPH4

iPhone 4S/4 防指紋性・高光沢機能性フィルム PRO GUARD AF for iPhone 4S/4 / PGAF-IPH4

マイクロソリューション Micro Solution Inc.

59人が購入

Amazon.co.jp