olidStateEveryday - Ajax,javascript,UIサンプルとチュートリアル -

Ajax,Javascript、ユーザーの行動を視覚的&システム的に補助するスクリプトサンプル設置方法

  1. Home>
  2. ユーザー補助>
  3. ツールチップ>
  4. 画像やリンク先のプレビューも可能なTooltip

ツールチップmain

画像やリンク先のプレビューも可能なTooltip

スポンサードリンク
  • del.icio.us に登録
  • ライブドアクリップに追加
  • Google Bookmarks に追加
  • はてなブックマークに追加
  • Yahoo!ブックマークに登録
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Easiest jQuery Tooltip Ever</title>
<meta name="description" content="Easiest jQuery Tooltip Ever">
<script src="jquery.js" type="text/javascript"></script>
<script src="main.js" type="text/javascript"></script>
</meta>


<style>
*{border:none;}
body {
	margin:0;
	padding:5px;
	background:#fff;
	font:80% Arial, Helvetica, sans-serif;
	color:#555;
	line-height:180%;
	 background-color:#000
}

h1{
	font-size:180%;
	font-weight:normal;
	color:#555;
}
a{
	text-decoration:none;
	color:#f30;	
}
p{
	clear:both;
	margin:0;
	margin-bottom:400px;
	padding:.5em 0;
}

a img{width:150px; hegiht:100px;}

/*  */

#tooltip{
	position:absolute;
	border:1px solid #333;
	background:#f7f5d1;
	padding:2px 5px;
	color:#333;
	display:none;
	}	

/*  */

ul,li{
	margin:0;
	padding:0;
}
li{
	list-style:none;
	float:left;
	display:inline;
}



/*  */

#preview{
	position:absolute;
	border:1px solid #ccc;
	background:#333;
	padding:5px;
	display:none;
	color:#fff;
	}

/*  */
/*  */

#screenshot{
	position:absolute;
	border:1px solid #ccc;
	background:#333;
	padding:5px;
	display:none;
	color:#fff;
	}

/*  */
</style>
</head>
<body>

	<h1 class="tooltip" title="多摩動物園で撮影した写真です。">Tooltip Gallery Tamazoo</h1>
	    
    <ul>
		<li><a href="1.jpg" class="preview" title="大切なフェイク"><img src="1.jpg" alt="gallery thumbnail" /></a></li>
		<li><a href="2.jpg" class="preview" title="見つめられた"><img src="2.jpg" alt="gallery thumbnail" /></a></li>
		<li><a href="3.jpg" class="preview" title="囚われてはいない"><img src="3.jpg" alt="gallery thumbnail" /></a></li>
	</ul>
    
    <p><a href="http://www.cssglobe.com" class="screenshot" rel="http://images.websnapr.com/?size=S&key=0OsY08xZ7WEL&url=http://www.tokyo-zoo.net/zoo/tama/">多摩動物園</a>は一日中いても飽きないな。</p>

</body>
</html>

ツールチップを実装するスクリプト。
今回のスクリプトでは、一般的である「マウスカーソルに付いてくるフキダシ」の他に、サムネイル画像の拡大フキダシ表示、そしてリンク先のプレビュー画像表示を実現することができる。
拡大表示にはキャプションをつけることができるが、リンク先のプレビュー画像は自分で用意しなければならない。(自動で取得してくれるサービスを利用すれば手間は省ける)
3パターンのアクションはjQueryを元にしており、それぞれの動作を設定する3つのファイルに分かれる。 
もちろん一つにまとめることも可能。 

ダウンロード

サイトへ行って「tooltip.zip」をダウンロード。
解凍すると01,02,03と3つのフォルダが現れ、それぞれにindex.html、jquery.js、main.jsが格納されている。
jquery.jsは共通、main.jsにはそれぞれのアクションに対応するスクリプトが記述されている。
単純に一つにまとめる場合は、 アクションに対応したfunction部分と、下部にあるloadのfunctionをコピペする。

this.tooltip = function(){
};
this.imagePreview = function(){
};
this.screenshotPreview = function(){
};
// starting the script on page load
$(document).ready(function(){
tooltip();
imagePreview();
screenshotPreview();
}); 

<head>~</head>への設定

<script src="jquery.js" type="text/javascript"></script> <script src="main.js" type="text/javascript"></script>

この2つを読み込ませる。

フキダシテキストのツールチップ

デフォルトでは、<a>にクラスtooltipを設定することで出現する。

<a href="#" class="tooltip" title="多摩動物園で撮影した写真です。">Tooltip Gallery Tamazoo</a>

title部分のテキストが、フキダシによって表示される。
フキダシの構造は、

<p id='tooltip'>title</p>

となっているので、cssで設定、タグを変えたい場合はスクリプトの該当箇所も変更する。
スクリプトでは<a>限定とされているが、場合によって変更することも可能。

$("h1.tooltip").hover(function(e){

tooltip内の上記箇所のa.tooltipを設定したい要素名にすれば変更完了。(Ex."h1.tooltip")

サムネイル画像のツールチップ

imgを<a>で囲って、その<a>に詳細を設定する。

<a href="1.jpg" class="preview" title="大切なフェイク"><img src="1.jpg" alt="gallery thumbnail" /></a>

hrefに拡大表示する画像、classはpreviewを設定、title部分にテキストを入れるとキャプションになる。

リンク先のプレビュー表示

自動で取得してくれるものかと思ったら違った。
上のちょっと応用的な使い方、といったところか。

<a href="http://www.cssglobe.com" class="screenshot" rel="tama.jpg">多摩動物園</a>

普通のリンクにclass="creenshot"を設定し、プレビューとして表示したい画像のURLをrelに書き込む。
自動的にキャプチャ画像を表示したい場合は、websnaprとかのリンクをrelに設定すれば手間要らずになる。 

関連スクリプト

感想

正直ツールチップはあまり好きじゃない。
昔から、カーソルにふわふわと付いてくるものや、カーゾルをいじったものは嫌いだった。
でも使いようによっては、ナビゲーションにもなるし、演出にも使えるから、自分の認識を上書きしてかないとなぁ。 

スクリプトの使用について

SolidStateEverydayでご紹介しているAjax,Javascript等のスクリプトをご利用になる場合は、必ず製作元のサイトで使用ライセンスを確認してください。ご利用は自己責任でお願い致します。

結局、エックスサーバーなんですよね。