Spin spin
Der Rotationsviewer ist ein Bild-Viewer, der eine 360-Grad-Ansicht des Bildes oder sogar eine mehrdimensionale Ansicht bietet, wenn das entsprechende Rotationsset verwendet wird. Es verfügt über Zoom- und Drehwerkzeuge, Vollbildunterstützung und eine optionale Schaltfläche zum Schließen. Es wurde für Desktop-PCs und mobile Geräte entwickelt.
Viewer-Typ 503.
Siehe Systemanforderungen und Voraussetzungen.
Demo-URL section-e1c3106f5b3e445d9b95be337c2f94e2
Verwenden des Rotationsviewers section-e6c68406ecdc4de781df182bbd8088b4
Der Rotationsviewer stellt eine JavaScript-Hauptdatei und eine Reihe von Hilfsdateien (ein einzelnes JavaScript-Include mit allen Viewer-SDK-Komponenten, die von diesem bestimmten Viewer verwendet werden, Assets, CSS) dar, die vom Viewer zur Laufzeit heruntergeladen wurden.
Der Rotationsviewer kann sowohl im Popup-Modus mit der produktionsbereiten HTML-Seite, die mit dem IS-Viewer bereitgestellt wird, als auch im eingebetteten Modus verwendet werden, wo er mithilfe der dokumentierten API in die Ziel-Web-Seite integriert wird.
Konfiguration und Skinning sind mit denen der anderen Viewer vergleichbar. Die gesamte Skin-Erstellung kann mithilfe von benutzerdefiniertem CSS erfolgen.
Siehe Für alle Viewer gemeinsame Befehlsreferenz - Konfigurationsattribute und Für alle Viewer gemeinsame Befehlsreferenz - URL
Interagieren mit dem Rotationsviewer section-642e66ca38cd4032992840ec6c0b0cd2
Der Rotations-Viewer unterstützt die folgenden Touch-Gesten, die in anderen Mobile Apps üblich sind. Wenn der Viewer die Wischgeste eines Benutzers nicht verarbeiten kann, leitet er das Ereignis an den Webbrowser weiter, um einen nativen Seitenscroll durchzuführen. Mit dieser Funktion kann der Benutzer durch die Seite navigieren, auch wenn der Viewer den größten Teil des Gerätebildschirms einnimmt.
Wenn sich das Bild im zurückgesetzten Zustand befindet, dreht es sich horizontal durch das Set.
Wenn das Bild vergrößert wird, wird es horizontal verschoben. Wenn das Bild an den Ansichtsrand verschoben wird und in diese Richtung weiterhin gewischt wird, führt die Geste einen nativen Seitenscroll durch.
Wenn sich das Bild im zurückgesetzten Zustand befindet, ändert es den vertikalen Ansichtswinkel, falls ein mehrdimensionales Rotationsset verwendet wird. In einem eindimensionalen Rotationsset führt die Geste einen nativen Seitenscroll durch. Wenn sich ein mehrdimensionales Rotationsset auf der letzten oder ersten Achse befindet, sodass das vertikale Wischen nicht zu einer Änderung des vertikalen Ansichtswinkels führt, führt die Geste auch einen nativen Seitenscroll durch.
Wenn das Bild vergrößert ist, wird es vertikal verschoben. Wenn das Bild an den Ansichtsrand verschoben wird und in diese Richtung weiterhin gewischt wird, führt die Geste einen nativen Seitenscroll durch.
Dieser Viewer ist vollständig mit der Tastatur zugänglich.
Einbetten des Rotations-Viewers section-6bb5d3c502544ad18a58eafe12a13435
Verschiedene Web-Seiten haben unterschiedliche Anforderungen an das Viewer-Verhalten. Manchmal enthält eine Web-Seite einen Link, der bei Auswahl den Viewer in einem separaten Browser-Fenster öffnet. In anderen Fällen ist es erforderlich, den Viewer direkt in die Hosting-Seite einzubetten. Im letzteren Fall kann die Web-Seite über ein statisches Seiten-Layout verfügen oder ein responsives Design verwenden, das auf verschiedenen Geräten oder für verschiedene Browser-Fenstergrößen unterschiedlich angezeigt wird. Um diesen Anforderungen gerecht zu werden, unterstützt der Viewer drei primäre Betriebsmodi: Popup, Einbettung mit fester Größe und Einbetten von responsivem Design.
Über den Popup-Modus
Im Popup-Modus wird der Viewer in einem separaten Fenster oder einer separaten Registerkarte des Webbrowsers geöffnet. Sie nimmt den gesamten Browser-Fensterbereich und passt sich an, falls die Größe des Browsers geändert oder die Ausrichtung eines Mobilgeräts geändert wird.
Der Popup-Modus ist der gängigste für Mobilgeräte. Die Web-Seite lädt den Viewer mithilfe window.open()
JavaScript-Aufrufs, eines ordnungsgemäß konfigurierten HTML-Elements A
einer anderen geeigneten Methode.
Es wird empfohlen, eine vorkonfigurierte HTML-Seite für den Popup-Betriebsmodus zu verwenden. In diesem Fall wird sie als SpinViewer.html bezeichnet und befindet sich im html5/ Unterordner Ihrer standardmäßigen IS-Viewer-Bereitstellung:
<s7viewers_root>/html5/SpinViewer.html
Sie können die visuelle Anpassung erreichen, indem Sie benutzerdefiniertes CSS anwenden.
Im Folgenden finden Sie ein Beispiel für HTML-Code, der den Viewer in einem neuen Fenster öffnet:
<a href="https://s7d1.scene7.com/s7viewers/html5/SpinViewer.html?asset=Scene7SharedAssets/SpinSet_Sample&stagesize=500,400"
target="_blank">Open popup viewer</a>
Über den Einbettungsmodus für feste Größe und den Einbettungsmodus für responsives Design
Im eingebetteten Modus wird der Viewer zur vorhandenen Web-Seite hinzugefügt, die möglicherweise bereits einige Kundeninhalte enthält, die nicht mit dem Viewer verknüpft sind. Der Viewer belegt normalerweise nur einen Teil des Grundbesitzes einer Web-Seite.
Die wichtigsten Anwendungsfälle sind Web-Seiten, die für Desktops oder Tablet-Geräte ausgerichtet sind, sowie responsive Design-Seiten, deren Layout automatisch an den Gerätetyp angepasst wird.
Einbetten in fester Größe wird verwendet, wenn der Viewer seine Größe nach dem ersten Laden nicht ändert. Diese Aktion ist die beste Wahl für Web-Seiten mit statischem Layout.
Beim Einbetten eines responsiven Designs wird davon ausgegangen, dass die Größe des Viewers zur Laufzeit entsprechend der Größenänderung seiner Container-DIV
geändert werden muss. Der häufigste Anwendungsfall ist das Hinzufügen eines Viewers zu einer Web-Seite, die ein flexibles Seiten-Layout verwendet.
Im responsiven Design-Einbettungsmodus verhält sich der Viewer unterschiedlich, je nachdem, wie die Größe der Web-Seite seinen Container-DIV
bestimmt. Wenn die Web-Seite nur die Breite des Container-DIV
festlegt und seine Höhe nicht eingeschränkt wird, wählt der Viewer automatisch seine Höhe entsprechend dem Seitenverhältnis des verwendeten Assets aus. Diese Funktion stellt sicher, dass das Asset perfekt in die Ansicht passt, ohne dass an den Seiten ein Abstand vorhanden ist. Dieser Anwendungsfall ist der häufigste bei Web-Seiten, die responsive Design-Layout-Frameworks wie Bootstrap oder Foundation verwenden.
Wenn die Web-Seite jedoch sowohl die Breite als auch die Höhe für die Container-DIV
des Viewers festlegt, füllt der Viewer nur diesen Bereich aus und folgt der Größe, die das Web-Seiten-Layout bereitstellt. Ein gutes Beispiel ist das Einbetten des Viewers in eine modale Überlagerung, bei der die Größe der Überlagerung an die Fenstergröße des Webbrowsers angepasst ist.
Einbetten in fester Größe
Sie können den Rotationsviewer wie folgt zu einer Web-Seite hinzufügen:
-
Hinzufügen der Viewer-JavaScript-Datei zu Ihrer Web-Seite.
-
Container-
DIV
definieren. -
Festlegen der Viewer-Größe.
-
Viewer erstellen und initialisieren.
-
Hinzufügen der Viewer-JavaScript-Datei zu Ihrer Web-Seite.
Zum Erstellen eines Viewers müssen Sie dem HTML-Head ein Script-Tag hinzufügen. Bevor Sie die Viewer-API verwenden können, stellen Sie sicher, dass Sie
SpinViewer.js
einbeziehen.SpinViewer.js
befindet sich im html5/js/ Unterordner Ihrer standardmäßigen IS-Viewers-Bereitstellung:<s7viewers_root>/html5/js/SpinViewer.js
Sie können einen relativen Pfad verwenden, wenn der Viewer auf einem der Adobe-Dynamic Media-Server bereitgestellt wird und er von derselben Domain bereitgestellt wird. Andernfalls geben Sie einen vollständigen Pfad zu einem der Adobe-Dynamic Media-Server an, auf denen die IS-Viewer installiert sind.
Der relative Pfad sieht wie folgt aus:
code language-html <script language="javascript" type="text/javascript" src="/s7viewers/html5/js/SpinViewer.js"></script>
note note NOTE Verweisen Sie auf Ihrer Seite nur auf die JavaScript- include
-Datei des Haupt-Viewers. Verweisen Sie nicht auf zusätzliche JavaScript-Dateien im Web-Seiten-Code, die möglicherweise von der Logik des Viewers zur Laufzeit heruntergeladen werden. Verweisen Sie insbesondere nicht direkt auf die vom Viewer aus/s7viewers
Kontextpfad geladene HTML5 SDKUtils.js
-Bibliothek (so genannte konsolidierte SDK-include
). Der Grund dafür ist, dass der Speicherort vonUtils.js
oder ähnlichen Runtime-Viewer-Bibliotheken vollständig von der Logik des Viewers verwaltet wird und sich der Speicherort zwischen den Viewer-Versionen ändert. Adobe speichert ältere Versionen der sekundären Viewer-includes
nicht auf dem Server.Wenn Sie also auf der Seite einen direkten Verweis auf eine sekundäre JavaScript- include
einfügen, die vom Viewer verwendet wird, wird die Viewer-Funktionalität in Zukunft unterbrochen, wenn eine neue Produktversion bereitgestellt wird. -
Definieren des Container-DIV.
Fügen Sie der Seite, auf der der Viewer angezeigt werden soll, ein leeres DIV-Element hinzu. Für das DIV-Element muss eine ID definiert sein, da diese ID später an die Viewer-API übergeben wird.
Das Platzhalter-DIV ist ein positioniertes Element, d. h. die
position
CSS-Eigenschaft ist aufrelative
oderabsolute
festgelegt.Im Folgenden finden Sie ein Beispiel für ein definiertes Platzhalter-DIV-Element:
code language-html <div id="s7viewer" style="position:relative"></div>
-
Festlegen der Viewer-Größe
Sie können die statische Größe für den Viewer festlegen, indem Sie sie entweder für
.s7spinviewer
CSS-Klasse der obersten Ebene in absoluten Einheiten deklarieren oderstagesize
Modifikator verwenden.Sie können die Größenanpassung in CSS direkt auf der HTML-Seite oder in einer benutzerdefinierten CSS-Viewer-Datei festlegen. Sie wird später einem Viewer-Vorgabeneintrag in Dynamic Media Classic zugewiesen oder explizit mit einem Stilbefehl übergeben.
Weitere Informationen Formatieren des Viewers mit CSS finden Sie unter „AnpassenRotationsviewers“ .
Im Folgenden finden Sie ein Beispiel für die Definition einer statischen Viewer-Größe auf einer HTML-Seite:
code language-html #s7viewer.s7spinviewer { width: 640px; height: 480px; }
Sie können den
stagesize
entweder im Viewer-Vorgabeneintrag in Dynamic Media Classic festlegen. Sie können sie auch explizit mit dem Viewer-Initialisierungs-Code mitparams
Sammlung oder als API-Aufruf wie im Abschnitt „Befehlsreferenz“ beschrieben übergeben, wie im Folgenden dargestellt:code language-html spinViewer.setParam("stagesize", "640,480");
Ein CSS-basierter Ansatz wird empfohlen und wird in diesem Beispiel verwendet.
-
Viewer erstellen und initialisieren.
Wenn Sie die obigen Schritte ausgeführt haben, erstellen Sie eine Instanz
s7viewers.SpinViewer
Klasse, übergeben alle Konfigurationsinformationen an ihren Konstruktor und rufeninit()
Methode in einer Viewer-Instanz auf. Konfigurationsinformationen werden als JSON-Objekt an den Konstruktor übergeben. Dieses Objekt verfügt mindestens übercontainerId
Feld, das den Namen der Viewer-Container-ID enthält undparams
JSON-Objekt mit Konfigurationsparametern verschachtelt ist, die der Viewer unterstützt. In diesem Fall mussparams
-Objekt mindestens die Image-Serving-URL alsserverUrl
und das anfängliche Asset alsasset
übergeben haben. Mit der JSON-basierten Initialisierungs-API können Sie den Viewer mit einer einzigen Codezeile erstellen und starten.Es ist wichtig, dass der Viewer-Container zum DOM hinzugefügt wird, damit der Viewer-Code das Container-Element anhand seiner ID finden kann. Einige Browser verzögern die Erstellung von DOM bis zum Ende der Web-Seite. Um maximale Kompatibilität zu erzielen, rufen Sie die
init()
-Methode unmittelbar vor dem schließendenBODY
-Tag oder im body-onload()
auf.Gleichzeitig sollte das Container-Element noch nicht unbedingt Teil des Web-Seiten-Layouts sein. Beispielsweise kann sie mit dem ihr zugewiesenen
display:none
ausgeblendet werden. In diesem Fall verzögert der Viewer den Initialisierungsprozess bis zu dem Moment, an dem die Web-Seite das Container-Element wieder zum Layout zurückbringt. Wenn diese Aktion stattfindet, wird das Laden des Viewers automatisch fortgesetzt.Im Folgenden finden Sie ein Beispiel für das Erstellen einer Viewer-Instanz, das Übergeben der erforderlichen Mindestkonfigurationsoptionen an den Konstruktor und das Aufrufen der
init()
-Methode. Im Beispiel wird davon ausgegangen,spinViewer
die Viewer-Instanz,s7viewer
der Name des PlatzhaltersDIV
, http://s7d1.scene7.com/is/image/ die Bildbereitstellungs-URL und Scene7SharedAssets/SpinSet_Sample das Asset ist.code language-html <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>
Der folgende Code ist ein vollständiges Beispiel für eine triviale Web-Seite, auf der der Rotationsviewer mit einer festen Größe eingebettet ist:
code language-html <!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>
Responsives Design mit unbegrenzter Höhe
Beim Einbetten eines responsiven Designs verfügt die Web-Seite normalerweise über ein flexibles Layout, das die Laufzeitgröße der Container-DIV
des Viewers bestimmt. Nehmen wir für die Zwecke dieses Beispiels an, dass die Web-Seite dem Container-DIV
des Viewers ermöglicht, 40 % der Fenstergröße des Webbrowsers zu verwenden, wobei seine Höhe nicht beschränkt wird. Der resultierende HTML-Code der Web-Seite sieht wie folgt aus:
<!DOCTYPE html>
<html>
<head>
<style type="text/css">
.holder {
width: 40%;
}
</style>
</head>
<body>
<div class="holder"></div>
</body>
</html>
Das Hinzufügen des Viewers zu einer solchen Seite ähnelt dem Einbetten in fester Größe, mit dem einzigen Unterschied, dass Sie die Viewer-Größe nicht explizit definieren müssen.
- Hinzufügen der Viewer-JavaScript-Datei zu Ihrer Web-Seite.
- Definieren des Container-DIV.
- Viewer erstellen und initialisieren.
Alle oben genannten Schritte sind dieselben wie bei der Einbettung in fester Größe. Fügen Sie die Container-DIV
zum vorhandenen DIV
„Halter“ hinzu. Der folgende Code ist ein vollständiges Beispiel. Sie können sehen, wie sich die Viewer-Größe ändert, wenn der Browser skaliert wird, und wie das Seitenverhältnis des Viewers mit dem Asset übereinstimmt.
<!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>
Die folgende Beispielseite zeigt weitere Anwendungsfälle responsiven Designs mit unbegrenzter Höhe in der Praxis:
Flexible Einbettung mit definierter Breite und Höhe
Wenn es Einbettungen in flexibler Größe gibt, bei denen Breite und Höhe definiert sind, ist der Web-Seiten-Stil anders. Das heißt, sie stellt dem DIV
„Halter“ beide Größen zur Verfügung und zentriert ihn im Browser-Fenster. Außerdem legt die Web-Seite die Größe des HTML
- und BODY
auf 100 % fest:
<!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>
Die restlichen Einbettungsschritte sind identisch mit der responsiven Designeinbettung mit unbegrenzter Höhe. Das daraus resultierende Beispiel lautet:
<!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>
Einbetten mithilfe der Setter-basierten API
Anstelle der Verwendung der JSON-basierten Initialisierung ist es möglich, eine Setter-basierte API und einen Nicht-Args-Konstruktor zu verwenden. Bei diesem API-Konstruktor übernimmt kein Parameter und Konfigurationsparameter werden mithilfe von setContainerId()
-, setParam()
- und setAsset()
-API-Methoden mit separaten JavaScript-Aufrufen angegeben.
Das folgende Beispiel zeigt die Einbettung fester Größe mit einer Setter-basierten 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>