スピン

スピンビューアは、画像の360度ビューを提供する画像ビューアです。適切なスピンセットが使用されている場合は多次元ビューも提供します。 このビューアには、ズームツールとスピンツール、フルスクリーンのサポート、およびオプションの閉じるボタンがあります。 デスクトップおよびモバイルデバイスで動作するように設計されています。

メモ

IR(画像レンダリング)またはUGC(ユーザー生成コンテンツ)を使用する画像は、このビューアではサポートされていません。

ビューアタイプ503

必要システム構成と前提条件を参照してください。

デモURL

https://s7d9.scene7.com/s7viewers/html5/SpinViewer.html?asset=Scene7SharedAssets/SpinSet_Sample&stagesize=500,400

スピンビューアの使用

スピンビューアは、メインのJavaScriptファイルと、ヘルパーファイルのセット(この特定のビューア、アセット、CSSで使用されるすべてのビューアSDKコンポーネントを含む単一のJavaScriptインクルード)です。

スピンビューアは、ISビューアに付属する実稼動用HTMLページを使用するポップアップモードと、ドキュメント化されたAPIを使用してターゲットWebページに統合される埋め込みモードの両方で使用できます。

設定とスキン表示は、他のビューアと同様です。 スキンの適用はすべて、カスタムCSSを使用して実行できます。

すべてのビューアに共通のコマンドリファレンス — 設定属性およびすべてのビューアに共通のコマンドリファレンス — URLを参照してください。

スピンビューアの操作

スピンビューアは、他のモバイルアプリケーションで一般的な以下のタッチジェスチャに対応しています。 ビューアでユーザーのスワイプジェスチャを処理できない場合、ビューアはイベントをWebブラウザーに転送して、ネイティブページスクロールを実行します。 この機能を使用すると、デバイスの画面領域のほとんどをビューアが占めている場合でも、ユーザーはページ内を移動できます。

ジェスチャ

説明

ダブルタップ

最大の拡大率に達するまで、1レベルズームインします。 次のダブルタップジェスチャを実行すると、ビューアが初期の表示状態にリセットされます。

ピンチ

画像をズームインまたはズームアウトします。

水平方向のスワイプまたはフリック

画像がリセット状態の場合、セットを水平方向にスピンします。

画像がズームインされると、画像は水平方向に移動します。 画像を表示の端まで移動して、その方向で引き続きスワイプを実行すると、ネイティブページスクロールが実行されます。

垂直方向のスワイプまたはフリック

複数次元のスピンセットが使用されている場合、画像がリセット状態のときに垂直方向の表示角度が変更されます。 1次元スピンセットでは、このジェスチャによってネイティブページスクロールが実行されます。 また、多次元のスピンセットが最後または最初の軸にある場合に、垂直方向のスワイプによって垂直方向の表示角度が変わらないように、このジェスチャでネイティブページスクロールも実行されます。

画像がズームインされると、画像は垂直方向に移動されます。 画像を表示の端まで移動して、その方向で引き続きスワイプを実行すると、ネイティブページスクロールが実行されます。

メモ

また、タッチスクリーンとマウスを備えたWindowsデバイスでは、タッチ入力とマウス入力の両方がサポートされます。 ただし、このサポートは、Chrome、Internet Explorer 11およびEdge Webブラウザーのみに制限されます。

このビューアは完全にキーボードでアクセス可能です。

キーボードのアクセシビリティとナビゲーションを参照してください。

スピンビューアの埋め込み

ビューアの動作に対するニーズは、Webページごとに異なります。 Webページにリンクが表示され、このリンクをクリックすると別のブラウザーウィンドウでビューアが開く場合があります。 ホスティングページ内にビューアを埋め込む必要がある場合もあります。 後者の場合は、Webページが静的ページレイアウトである場合や、デバイスごと、ブラウザーウィンドウのサイズごとに表示方法が変わるレスポンシブデザインを使用する場合があります。 これらのニーズに対応するために、ビューアでは次の3つの主要な操作モードがサポートされています。ポップアップ、固定サイズ埋め込み、レスポンシブデザイン埋め込み。

ポップアップモードについて

ポップアップモードでは、ビューアは別のWebブラウザーウィンドウまたはタブに開きます。 ブラウザーウィンドウの全領域を占め、ブラウザーのサイズやモバイルデバイスの向きが変更された場合は調整されます。

ポップアップモードは、モバイルデバイスで最も一般的なモードです。 Webページでは、window.open() JavaScript呼び出し、適切に設定されたA HTML要素またはその他の適切な方法を使用してビューアを読み込みます。

ポップアップ操作モードには、標準提供のHTMLページを使用することをお勧めします。 この場合、このページはSpinViewer.htmlと呼ばれ、標準のIS-Viewersデプロイメントのhtml5/サブフォルダー内にあります。

<s7viewers_root>/html5/SpinViewer.html

カスタムCSSを適用することで、視覚的なカスタマイズを実現できます。

以下は、ビューアを新しいウィンドウで開くHTMLコードの例です。

<a 
href="https://s7d1.scene7.com/s7viewers/html5/SpinViewer.html?asset=Scene7SharedAssets/SpinSet_Sample&stagesize=500,400" 
target="_blank">Open popup viewer</a>

固定サイズ埋め込みモードとレスポンシブデザイン埋め込みモードについて

埋め込みモードでは、ビューアは既存のWebページに追加されます。既に、ビューアに関連していない顧客コンテンツが含まれている場合があります。 ビューアは、通常、Webページの一部の領域のみを占有します。

主な使用例は、デスクトップやタブレットデバイス向けのWebページ、また、デバイスの種類に応じてレイアウトを自動的に調整するレスポンシブデザインページです。

固定サイズ埋め込みは、初回の読み込み後にビューアのサイズが変更されない場合に使用します。 このアクションは、静的レイアウトのWebページに最適です。

レスポンシブデザイン埋め込みは、コンテナDIVのサイズ変更に対応して実行時にビューアのサイズを変更する必要がある場合を想定しています。 最も一般的な使用例は、柔軟なページレイアウトを使用するWebページにビューアを追加する場合です。

レスポンシブデザイン埋め込みモードでは、WebページによるコンテナDIVのサイズ変更の方法によって、ビューアの動作が異なります。 WebページでコンテナDIVの幅のみが設定され、高さは無制限のままの場合、ビューアでは、使用するアセットの縦横比に従って高さが自動的に選択されます。 この機能により、側面のパディングなしで、アセットが表示にぴったりと収まります。 この使用例は、BootstrapやFoundationなどのレスポンシブデザインレイアウトフレームワークを使用するWebページで最も一般的です。

それ以外の場合は、WebページでビューアのコンテナDIVの幅と高さの両方が設定されている場合、ビューアはその領域を占め、Webページのレイアウトで指定されているサイズに従います。 良い例として、ビューアをモーダルオーバーレイに埋め込み、オーバーレイがWebブラウザーのウィンドウサイズに従ってサイズ設定される場合があります。

固定サイズ埋め込み

次の手順を実行して、スピンビューアをWebページに追加します。

  1. ビューアのJavaScriptファイルをWebページに追加する。

  2. コンテナDIVを定義します。

  3. ビューアのサイズを設定する。

  4. ビューアを作成し、初期化する。

  5. ビューアのJavaScriptファイルをWebページに追加する。

    ビューアを作成するには、HTMLのheadにscriptタグを追加する必要があります。 ビューアのAPIを使用するには、必ずSpinViewer.jsを含めてください。 SpinViewer.js は、標準のIS-Viewersデプ html5/js/ ロイメントのサブフォルダーにあります。

    <s7viewers_root>/html5/js/SpinViewer.js

    ビューアがDynamic MediaAdobeのいずれかにデプロイされ、同じドメインから提供されている場合は、相対パスを使用できます。 それ以外の場合は、ISビューアがインストールされているAdobeDynamic Mediaサーバーの1つへのフルパスを指定します。

    相対パスは次のようになります。

     <script language="javascript" type="text/javascript" src="/s7viewers/html5/js/SpinViewer.js"></script>
    
    メモ

    ページ上で、メインビューアのJavaScript includeファイルのみを参照します。 実行時にビューアのロジックによってダウンロードされる可能性のあるWebページコード内の追加のJavaScriptファイルは参照しないでください。 特に、ビューアによって/s7viewersコンテキストパスから読み込まれたHTML5 SDK Utils.jsライブラリを直接参照しないでください(いわゆる統合SDK include)。 理由は、Utils.jsや類似のランタイムビューアライブラリの場所は、ビューアのロジックによって完全に管理され、ビューアのリリースによって位置が変わるからです。 Adobeでは、セカンダリビューアincludesの古いバージョンはサーバに保持されません。

    その結果、新しい製品バージョンがデプロイされると、ビューアが使用するセカンダリJavaScript includeへの直接参照をページに配置すると、将来ビューア機能が壊れます。

  6. コンテナDIVを定義する。

    ビューアを表示するページに空のDIV要素を追加します。 DIV要素では、IDが定義されている必要があります。このIDは、後でビューアのAPIに渡されます。

    プレースホルダーDIVは配置を指定する要素で、CSSのpositionプロパティをrelativeまたはabsoluteに設定します。

    プレースホルダーDIV要素の定義例を次に示します。

    <div id="s7viewer" style="position:relative"></div>
    
  7. ビューアサイズの設定

    ビューアの静的サイズを設定するには、.s7spinviewer最上位CSSクラスに対して絶対単位で宣言するか、stagesize修飾子を使用します。

    サイズ調整は、HTMLページ上またはカスタムビューアのCSSファイルでCSSに直接配置できます。 後で、Dynamic Media Classicのビューアプリセットレコードに割り当てられるか、スタイルコマンドを使用して明示的に渡されます。

    CSSでのビューアのスタイル設定について詳しくは、スピンビューアのカスタマイズを参照してください。

    以下は、HTMLページで静的ビューアサイズを定義する例です。

    #s7viewer.s7spinviewer { 
     width: 640px; 
     height: 480px; 
    }
    

    stagesize修飾子は、Dynamic Media Classicのビューアプリセットレコードで設定できます。 または、次のように、 paramsコレクションを使用してビューア初期化コードを明示的に渡すことも、コマンドリファレンスの節で説明するようにAPI呼び出しとして渡すこともできます。

     spinViewer.setParam("stagesize", 
    "640,480");
    

    CSSベースのアプローチを推奨し、この例で使用します。

  8. ビューアを作成し、初期化する。

    上記の手順を完了したら、s7viewers.SpinViewerクラスのインスタンスを作成し、すべての設定情報をコンストラクターに渡して、ビューアインスタンスでinit()メソッドを呼び出します。 設定情報は、JSONオブジェクトとしてコンストラクターに渡されます。 最低でも、このオブジェクトにはcontainerIdフィールドがあり、ビューアのコンテナIDの名前と、ビューアがサポートする設定パラメーターを含むネストされたparams JSONオブジェクトが含まれています。 この場合、paramsオブジェクトの場合、serverUrlプロパティとして渡された画像サービングURLが少なくとも含まれ、初期アセットがassetパラメーターとして含まれている必要があります。 JSONベースの初期化APIを使用すると、1行のコードでビューアを作成し、起動できます。

    ビューアのコードがIDでコンテナ要素を見つけられるように、ビューアのコンテナをDOMに追加することが重要です。 一部のブラウザーは、Webページの終わりまでDOMの構築を遅らせます。 互換性を最大にするには、 BODY終了タグの直前、または本文のonload()イベントでinit()メソッドを呼び出します。

    同時に、コンテナ要素は、必ずしもWebページレイアウトの一部ではありません。 例えば、割り当てられたdisplay:noneスタイルを使用して非表示にすることができます。 この場合、Webページでコンテナ要素がレイアウトに戻るまで、ビューアの初期化プロセスが遅れます。 このアクションが発生すると、ビューアの読み込みが自動的に再開されます。

    以下の例では、ビューアインスタンスを作成し、最低限必要な設定オプションをコンストラクターに渡してinit()メソッドを呼び出します。 この例では、 spinViewerをビューアインスタンス、 s7viewerをプレースホルダーDIVの名前、 http://s7d1.scene7.com/is/image/を画像サービングのURL、 Scene7SharedAssets/SpinSet_Sampleをアセットと仮定しています。

    <script type="text/javascript"> 
    var spinViewer = new s7viewers.SpinViewer({ 
     "containerId":"s7viewer", 
    "params":{ 
     "asset":"Scene7SharedAssets/SpinSet_Sample", 
     "serverurl":"http://s7d1.scene7.com/is/image/" 
    } 
    }).init(); 
    </script>
    

    次のコードは、固定サイズのスピンビューアを埋め込んだ簡単なWebページの例です。

    <!DOCTYPE html> 
    <html> 
    <head> 
    <script type="text/javascript" src="http://s7d1.scene7.com/s7viewers/html5/js/SpinViewer.js"></script> 
    <style type="text/css"> 
    #s7viewer.s7spinviewer { 
     width: 640px; 
     height: 480px; 
    } 
    </style> 
    </head> 
    <body> 
    <div id="s7viewer" style="position:relative"></div> 
    <script type="text/javascript"> 
    var spinViewer = new s7viewers.SpinViewer({ 
     "containerId":"s7viewer", 
    "params":{ 
     "asset":"Scene7SharedAssets/SpinSet_Sample", 
     "serverurl":"http://s7d1.scene7.com/is/image/" 
    } 
    }).init(); 
    </script> 
    </body> 
    </html>
    

高さ無制限のレスポンシブデザイン埋め込み

レスポンシブデザイン埋め込みでは、Webページには通常、ビューアのコンテナDIVの実行時のサイズを指示する柔軟なレイアウトが指定されています。 この例では、WebページでビューアのコンテナDIVがWebブラウザーのウィンドウサイズの40%を占めることを許可し、高さは無制限のままにするとします。 生成されるWebページのHTMLコードは次のようになります。

<!DOCTYPE html> 
<html> 
<head> 
<style type="text/css"> 
.holder { 
 width: 40%; 
} 
</style> 
</head> 
<body> 
<div class="holder"></div> 
</body> 
</html>

このようなページへのビューアの追加方法は、固定サイズ埋め込みの場合と似ていますが、唯一の違いは、ビューアサイズを明示的に定義する必要がないことです。

  1. ビューアのJavaScriptファイルをWebページに追加する。
  2. コンテナDIVを定義する。
  3. ビューアを作成し、初期化する。

上記の手順はすべて、固定サイズ埋め込みの場合と同じです。 コンテナDIVを既存の「holder」DIVに追加します。 次のコードは完全な例です。 ブラウザーのサイズが変更されたときにビューアのサイズがどのように変化するか、ビューアの縦横比がアセットと一致するかを確認できます。

<!DOCTYPE html> 
<html> 
<head> 
<script type="text/javascript" src="http://s7d1.scene7.com/s7viewers/html5/js/SpinViewer.js"></script> 
<style type="text/css"> 
.holder { 
 width: 40%; 
} 
</style> 
</head> 
<body> 
<div class="holder"> 
<div id="s7viewer" style="position:relative"></div> 
</div> 
<script type="text/javascript"> 
var spinViewer = new s7viewers.SpinViewer({ 
 "containerId":"s7viewer", 
"params":{ 
 "asset":"Scene7SharedAssets/SpinSet_Sample", 
 "serverurl":"http://s7d1.scene7.com/is/image/" 
} 
}).init(); 
</script> 
</body> 
</html>

以下のサンプルページでは、高さ無制限のレスポンシブデザイン埋め込みの、より実用的な使用例を示します。

ライブデモ

代替のデモの場所

幅と高さが定義されたフレキシブルサイズ埋め込み

幅と高さが定義されたフレキシブルサイズ埋め込みがある場合、Webページのスタイル設定は異なります。 つまり、"holder" DIVに両方のサイズを提供し、ブラウザーウィンドウの中央に配置します。 また、Webページでは、HTML要素とBODY要素のサイズを100%に設定します。

<!DOCTYPE html> 
<html> 
<head> 
<style type="text/css"> 
html, body { 
 width: 100%; 
 height: 100%; 
} 
.holder { 
 position: absolute; 
 left: 20%; 
 top: 20%; 
 width: 60%; 
height: 60%; 
} 
</style> 
</head> 
<body> 
<div class="holder"></div> 
</body> 
</html>

残りの埋め込み手順は、高さ無制限のレスポンシブデザイン埋め込みと同じです。 結果の例は次のようになります。

<!DOCTYPE html> 
<html> 
<head> 
<script type="text/javascript" src="http://s7d1.scene7.com/s7viewers/html5/js/SpinViewer.js"></script> 
<style type="text/css"> 
html, body { 
 width: 100%; 
 height: 100%; 
} 
.holder { 
 position: absolute; 
 left: 20%; 
 top: 20%; 
 width: 60%; 
height: 60%; 
} 
</style> 
</head> 
<body> 
<div class="holder"> 
<div id="s7viewer" style="position:relative"></div> 
</div> 
<script type="text/javascript"> 
var spinViewer = new s7viewers.SpinViewer({ 
 "containerId":"s7viewer", 
"params":{ 
 "asset":"Scene7SharedAssets/SpinSet_Sample", 
 "serverurl":"http://s7d1.scene7.com/is/image/" 
} 
}).init(); 
</script> 
</body> 
</html>

セッターベースのAPIを使用した埋め込み

JSONベースの初期化を使用する代わりに、セッターベースのAPIとno-argsコンストラクターを使用できます。 このAPIでは、コンストラクターにパラメーターは不要です。設定パラメーターは、 setContainerId()setParam()およびsetAsset()の各APIメソッドを別々のJavaScript呼び出しで使用して指定します。

次の例は、セッターベースのAPIを使用した固定サイズ埋め込みを示しています。

<!DOCTYPE html> 
<html> 
<head> 
<script type="text/javascript" src="http://s7d1.scene7.com/s7viewers/html5/js/SpinViewer.js"></script> 
<style type="text/css"> 
#s7viewer.s7spinviewer { 
 width: 640px; 
 height: 480px; 
} 
</style> 
</head> 
<body> 
<div id="s7viewer" style="position:relative"></div> 
<script type="text/javascript"> 
var spinViewer = new s7viewers.SpinViewer(); 
spinViewer.setContainerId("s7viewer"); 
spinViewer.setParam("serverurl", "http://s7d1.scene7.com/is/image/"); 
spinViewer.setAsset("Scene7SharedAssets/SpinSet_Sample"); 
spinViewer.init(); 
</script> 
</body> 
</html>

このページ