【ハウツー】
Yahoo! UI Libraryのパネルのサンプルページにパネルを利用したフォトアルバムがありますが、もっと手軽にフォトアルバムを実現させてみましょう。まず、これまで同様パネルを表示するためのHTMLタグを設定します。フォトアルバムなのでパネルの本文には<img>タグを指定します。<img>タグには操作するためのIDを指定しておきます。
パネルが表示されたらタイマーを使って一定時間ごと画像を入れ替える処理を呼び出します。画像を入れ替えるには<img>タグのsrc属性に表示する画像のURLを設定します。今回表示する画像は下図のようにphotoフォルダに3桁の数字の連番で格納されています。このような場合にはカウンタ変数を用意し、その値をファイル名として利用します。
![]() |
フォトアルバム作成のための画像の下準備 |
Yahoo! UI LibraryではYAHOO.util.Dom.get()を利用してページ上にあるタグにアクセスすることができます。パラメータにはアクセスしたいタグのID名を指定します。これは基本的にdocument.getElementById()と同じになります。prototype.jsやjQuery、Adobe Spryでは$()に該当します。サンプル13ではパネル内に3秒ごと画像を入れ替えて表示します。
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>YUIパネルサンプル</title>
<link rel="stylesheet" type="text/css" href="css/container.css">
<link rel="stylesheet" type="text/css" href="css/main.css">
<script type="text/javascript" src="js/yahoo-dom-event.js"></script>
<script type="text/javascript" src="js/animation.js"></script>
<script type="text/javascript" src="js/dragdrop.js"></script>
<script type="text/javascript" src="js/container.js"></script>
<script type="text/javascript"><!--
var panelObj, imageCount = 2;
window.onload = function() {
panelObj = new YAHOO.widget.Panel("panel1", {
effect:{effect:YAHOO.widget.ContainerEffect.FADE,duration:1 }
});
panelObj.setHeader("■フォトアルバム 2007");
panelObj.render();
setInterval("changeImage()", 3000);
}
function changeImage(){
YAHOO.util.Dom.get("myPhoto").src = "photo/00"+imageCount+".jpg";
imageCount++;
if (imageCount > 8) imageCount = 1;
}
// --></script>
</head>
<body>
<h1>YUIパネルサンプル(パネル内に画像を表示)</h1>
<div id="panel1">
<div class="pHeader"></div>
<div class="pBody">
<img src="photo/001.jpg" width="384" height="216" id="myPhoto">
</div>
<div class="pFooter"></div>
</div>
</body>
</html>
パネルはHTMLタグを設定しIDを割り当てれば、いくつでも表示させることができます。サンプル14ではフォトアルバムの横に説明用のパネルを重ねて表示しています。必要であればパネルの奥行きはYAHOO.widget.Panel()の2番目のzIndexオプションで指定することができます。
パネル機能は手軽に使うことができ、いろいろな事に応用できる便利なものです。ぜひ、活用してみてください。
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>YUIパネルサンプル</title>
<link rel="stylesheet" type="text/css" href="css/container.css">
<link rel="stylesheet" type="text/css" href="css/main.css">
<script type="text/javascript" src="js/yahoo-dom-event.js"></script>
<script type="text/javascript" src="js/animation.js"></script>
<script type="text/javascript" src="js/dragdrop.js"></script>
<script type="text/javascript" src="js/container.js"></script>
<script type="text/javascript"><!--
var panelObj, imageCount = 2;
window.onload = function() {
panelObj = new YAHOO.widget.Panel("panel1", {
effect:{effect:YAHOO.widget.ContainerEffect.FADE,duration:1 }
});
panelObj.setHeader("■フォトアルバム 2007");
panelObj.render();
setInterval("changeImage()", 3000);
// 2番目のパネル
panelObj2 = new YAHOO.widget.Panel("panel2", { xy : [310, 240] });
panelObj2.render();
}
function changeImage(){
YAHOO.util.Dom.get("myPhoto").src = "photo/00"+imageCount+".jpg";
imageCount++;
if (imageCount > 8) imageCount = 1;
}
// --></script>
</head>
<body>
<h1>YUIパネルサンプル(パネル内に画像を表示)</h1>
<div id="panel1">
<div class="pHeader"></div>
<div class="pBody">
<img src="photo/001.jpg" width="384" height="216" id="myPhoto">
</div>
<div class="pFooter"></div>
</div>
<div id="panel2">
<div class="pHeader">【お知らせ】</div>
<div class="pBody">
新しい写真を公開しました。
</div>
<div class="pFooter">最終更新日 : 2007年7月21日</div>
</div>
</body>
</html>
| ゼロからはじめるCurl.js - Webの写真を手軽にカールしてみよう [2008/4/15] |
| ゼロからはじめるMooRevolver - 商品写真に最適、回転式写真表示ライブラリ [2008/4/14] |
| ゼロからはじめるS5 - スクリプトひとつでプレゼンサイト [2008/4/10] |
| ゼロからはじめるFancyForm - フォームやラジオボタンをグラフィカルに [2008/3/19] |
| ゼロからはじめるFrogJS - CSS不要の画像表示ライブラリ [2008/3/11] |
| ゼロからはじめるYahoo! UI Library - SimpleDialog編 [2008/2/13] |
| 【レポート】マカフィーの世界の専門家の意識調査「サイバー防衛報告書」とセキュリティソリューション [21:15 5/25] |
| アップル、Aperture 3.2.4を公開 - バグ修正、安定性向上など [20:51 5/25] |
| 【レポート】GTC 2012 - VGXでエンタープライズ環境でのGPU需要開拓を狙うNVIDIA [20:07 5/25] |
| デル、期間限定キャンペーンに特価アイテム追加、アップグレード無料も継続 [19:41 5/25] |
| 上海問屋、iPhoneとほぼ同じ薄さのバッテリ内蔵ヘッドホンアンプ [19:05 5/25] |
|
ファミマ×ミクの「Happyくじ 初音ミク」で当たる激レアグッズが明らかに! [16:02 5/26] ホビー |
|
[注目の新譜]BUCK-TICK 不動のメンバーで25年 新レーベルからの第1弾シングル [15:31 5/26] ホビー |
|
AKB宮澤佐江、ダービーは大穴勝負!「総選挙も"追い込み"たい」 [15:30 5/26] エンタメ |
|
お嬢様学校の「庶民サンプル」描くラノベがコミカライズ [15:05 5/26] ホビー |
|
【女性編】あまり知らない人とやることをためらわれることランキング [15:00 5/26] ライフ |