Pannellumを使って、iframeで360度画像をブログに取り込む2
http://d.hatena.ne.jp/kenmituo/20170309/1489035138の続き。
Pannellumってのは「親要素のHTMLファイルのiframeに中身の子要素HTMLファイルに画像を貼り付けて表示する。」です。
画像ごとにファイルを作るのも面倒なので魔改造することにした。
親要素
iframeを埋め込むHTMLファイル、ifremeのsrcにパラメータを埋め込みます。
index.html
<html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>テスト</title> </head> <body> <iframe width="800" height="400" allowfullscreen style="border-style:none;" src="iframe.html?alma.jpg"></iframe> <p>キャッシュ対策が難しい。firefoxはF5でiframeが更新されない。Ctrl+F5ならOk</p> <p>呼び出し側のindex.htmlのiframeにオプションでパラメータを与えると、iframe.htmlでパラメータを受け取って画像を差し替えられる</p> </body> </html>
「src="iframe.html?alma.jpg"」ってのがミソ、公式のオプション指定は意味なさそう。
子要素
iframeの中に表示されるHTMLファイル、URLからパラメータを取得します
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>A simple example</title> <link rel="stylesheet" href="pannellum.css"/> <script type="text/javascript" src="pannellum.js"></script> <script type="text/javascript"> <!-- //パラメータ var img_name = location.href.split("?")[1]; //undefined対策してない。 --> </script> <style> #panorama { height: 380px; /*iframeの-20px*/ } </style> </head> <body> <div id="panorama"></div> <script> pannellum.viewer('panorama', { "type": "equirectangular", "panorama": img_name, "autoLoad": true, "autoRotate": -2 }); </script> </body> </html>
これなら簡単に増殖できる。