JavaScriptでパノラマ画像を横スクロールさせる

  • comment:0
  • | trackback:0

昨年8月20日のエントリーで、AJAXプログラムを使って、ウェブページ上でFlashやQuicktimeVRではなく画像変換だけのパノラマVRコンテンツを実装するお話をしました。

AJAXでヴァーチャルツアーを実現する : QTVR Diary
AJAXで高解像度全方位パノラマVRを実現する

しかしもっと単純に、横長のパノラマ画像を表示できるエリアを限定して、その画面内でマウスの左右の動きでスクロールさせるJavaScriptプログラムが公開されました。

Gaya Design - Panoramic Photoviewer in Javascript
Gaya Design - Panoramic Photoviewer in Javascript
http://gayadesign.nl/post/4/

デモページが同サイトに
Gaya Design - PhotoNav
http://www.gayadesign.com/scripts/photonav/

ソースコードは下記から
http://www.gayadesign.com/scripts/photonav/photonav.zip

この他にも、実装にはAJAXフレームワークとして有名な『prototype.js』とエフェクト系ライブラリ『scriptaculous.js』が必要です。それぞれリンク先から最新版をダウンロードして下さい。

実際にボクも埋め込んでみました。
VRPodcastのコンテンツの背景画像(760×160pxのCylindericalパノラマ画像)を表示させてみましょう。

まず<head>内に、ダウンロードしたJavaScriptファイル及びcssファイルをHTMLファイル内に読み込みます。


<script src="js/prototype-1.6.0.3.js" type="text/javascript"></script>
<script src="js/scriptaculous.js" type="text/javascript"></script>
<script src="js/photonav.js" type="text/javascript"></script>
<link href='css/photonav.css' rel='stylesheet' type='text/css' />

そして「photonav.css」に、表示されるパノラマ画像を指示する。
なお、変更箇所は「/* Adjust this part */」以下のソース

.photonav .photo {
	width: 400px;(※注:表示させるエリアの横幅)
	height:160px;(※注:表示させるエリアの高さ)
	}
.photonav .photo .opt {
	height: 160px;(※注:表示させる画像の高さ)
	background-image: url(../images/bg.jpg);(※注:表示させる画像のパス)
	}

最後にHTMLファイルの<body>内に、画像を表示させる以下のコードを埋め込みます。

<div id='photonav' class='photonav'>
	<div class='photo' style='display: none;' id='navigate'>
		<div class='fixed opt'></div>
	</div>
	<script type='text/javascript'>
		document.getElementById('navigate').style.display = 'block';
		PhotoNav.init('navigate',760,3160,true,0.1,false);
	</script>
</div>

ここで重要なのは、上段のID名の指定と、下段のJavaScriptソース。
上段の「<div class='photo' style='display: none;' id='『ID名』'>」で指定したID名を、JavaScriptソースで指定します。
下段のJavaScriptソースの数値の意味は、以下の通りです。

「PhotoNav.init('『ID名』',『画像の横幅』,『スクロール幅』,『スムーズ化』,『スムーズ数値』,『デバッグモード』);」
  • ID名:上段で指定したID名
  • 画像の横幅:表示するパノラマ画像の横幅(単位:ピクセル)
  • スクロール幅:パノラマ画像がループされて送り出される全横幅(単位:ピクセル)
  • スムーズ化:「script.aculo.us」で実現するスムーズなスクロールを実現するかどうか(初期値:使う)
  • スムーズ数値:スムーズスクロールの数値(初期値:0.1)
  • デバッグモード:マウスの動きを出力する「デバッグモード」プログラムを使用するかどうか(初期値:使わない)

とまぁ、こんな感じになっているわけです。

横置きのパノラマ画像をブログに載せる場合、どうしても横幅の制約があって全部載せられなくて歯痒かったりしませんか?
そのため、このブログでもお馴染み"タテパノ"を使うことを推奨してるわけですが、被写体の多様性でいうと、圧倒的に横長の方が多いわけです。
そんなウェブページに納めるには少々難がある横長のパノラマ画像を、巧く載せる方法として、覚えておいて損は無いと思いますよ。

作者のサンプルページでは、ナビゲーションとして、この横スクロール画像を提案しています。これも非常に面白い試みですね。ボクも機会を見て実際の仕事に試してみようと思います。


< 元ネタ >

Panoramic Photo viewer - 1147 + Ajax/Javascript/Dhtml examples and demos to download



2009年2月14日(土)16:00〜18:00 参加無料のイベントです。お気軽にお越し下さい!
親睦会(参加費6,000円)の参加申込もこちらからどうぞ

QTVR Diary -OFFLINE- vol.8

トラックバック(0)

トラックバックURL:

コメントする

日本唯一のパノラマ画像/VRムービーに関する企画・制作から、セミナー、ソリューション開発・販売に至る、あらゆる業務を行っています。

» パノラマの知名度は今や一般大衆レベルです。

近年パノラマコンテンツは、Googleストリートビューに代表される地図の付加情報としてのパノラマVRムービーの台頭で非常に注目を浴びていますが、その表現力はそれだけに留まらず、多方面で利用されるパノラマヴァーチャルツアーコンテンツ、ギガピクセルクラスの超高解像度パノラマコンテンツ、さらには、360°全方位パノラマ動画が、ライブ配信されるまでになっています。

» 他社を圧倒する経験値が皆様をサポートします。

このような、あらゆるパノラマコンテンツを総合的にプロデュース出来るのは、15年来培ってきたパノラマ制作のノウハウと、2005年から発信してきた「QTVR Diary」での情報の蓄積の賜物です。

» 常に業界をリードし続けます。

世界でも類を見ないパノラマ関連情報専門ブログ「QTVR Diary」の知名度は、リソースの少ない日本だけでなく海外からも注目を浴びています。国内外のメーカーからの情報やソリューションサンプルの提供を受け、いち早くパノラマ業界の専門情報をお届けしています。

» 新しいソリューションを常に開拓し続けます。

今後ますます増え続けるパノラマのニーズに対応すべく、日々研鑽を重ね、多くの方々にパノラマを楽しんで頂けるよう、努力してまいります。

<サイト内リンク>

<姉妹サイト>

<連絡先>

design studio "PENCIL" 二宮 章
〒602-8237
京都府京都市上京区
 大宮通一条下ル梨木町189-5
075-417-3062 (office)
075-417-3063 (fax)
090-9628-6263 (au)
080-3832-2352 (iphone)
ninomiya@pencil-jp.net