旋转

旋转查看器是一种图像查看器,可提供360度的图像视图,或者在使用适当的旋转集时提供多维视图。 它提供缩放和旋转工具、全屏支持以及可选的关闭按钮。 它适用于台式机和移动设备。

注意

此查看器不支持使用IR(图像渲染)或UGC(用户生成的内容)的图像。

查看器类型503。

请参阅 系统要求和先决条件.

演示URL

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

使用旋转查看器

旋转查看器表示主JavaScript文件和一组帮助程序文件(单个JavaScript包含该查看器在运行时下载的特定查看器、资产和CSS所使用的所有查看器SDK组件)。

旋转查看器既可以在弹出模式下使用IS-Viewer提供的生产就绪HTML页面,也可以在嵌入式模式下使用,在嵌入式模式下,可使用记录在案的API将其集成到目标网页中。

配置和外观设置与其他查看器类似。 所有外观设置都可以通过自定义CSS实现。

请参阅 所有查看器通用的命令引用 — 配置属性所有查看器 — URL通用的命令引用

与旋转查看器交互

旋转查看器支持以下在其他移动设备应用程序中常见的触控手势。 当查看器无法处理用户的轻扫手势时,它会将事件转发到Web浏览器以执行本机页面滚动。 即使查看者占据了设备屏幕的大部分区域,该功能也允许用户在页面中导航。

手势

说明

双击

放大一个级别,直到达到最大放大率。 下一个双击手势会将查看器重置为初始查看状态。

捏合

放大或缩小图像。

水平轻扫或轻扫

如果图像处于重置状态,则它水平旋转设置。

如果图像被放大,则会水平移动图像。 如果图像被移动到视图边缘并且仍沿该方向轻扫,则手势将执行本机页面滚动。

垂直轻扫或轻扫

如果图像处于重置状态,则当使用多维旋转集时,它会更改垂直视图角度。 在一维旋转集中,手势执行本机页面滚动。 或者,当多维旋转集位于最后一个或第一个轴上,以便垂直轻扫不会导致垂直视图角度改变时,手势还会执行本机页面滚动。

如果图像被放大,则会垂直移动图像。 如果图像被移动到视图边缘并且仍沿该方向轻扫,则手势将执行本机页面滚动。

注意

查看器还支持在Windows设备上通过触摸屏和鼠标进行触摸输入和鼠标输入。 但是,此支持仅限于Chrome、Internet Explorer 11和Edge Web浏览器。

此查看器可完全通过键盘访问。

请参阅 键盘辅助功能和导航.

嵌入旋转查看器

不同网页对查看者行为的需求不同。 有时,网页会提供一个链接,在选定该链接后,该链接会在单独的浏览器窗口中打开查看器。 在其他情况下,需要将查看器权限嵌入到托管页面中。 在后一种情况下,网页可能具有静态页面布局,或者使用响应式设计,该设计在不同设备上显示不同,或针对不同的浏览器窗口大小显示不同。 为了满足这些需求,查看器支持三种主要操作模式:弹出窗口、固定大小嵌入和响应式设计嵌入。

关于弹出模式

在弹出模式下,查看器在单独的Web浏览器窗口或选项卡中打开。 它会占用整个浏览器窗口区域,并在浏览器大小调整或移动设备方向发生更改时进行调整。

弹出模式是移动设备最常见的模式。 网页使用 window.open() JavaScript调用,已正确配置 A HTML元素,或任何其他合适的方法。

建议您使用现成的HTML页面进行弹出操作模式。 在这种情况下,它称为 SpinViewer.html 和位于 html5/ 标准IS — 查看器部署的子文件夹:

<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>

关于固定大小嵌入模式和响应式设计嵌入模式

在嵌入模式下,查看器会添加到现有网页,该网页可能已经包含一些与查看器无关的客户内容。 查看者通常只占据网页的一部分房地产。

主要用例包括面向台式机或平板电脑设备的网页,以及响应式设计页面,这些页面可根据设备类型自动调整布局。

当查看器在初始加载后不更改其大小时,会使用固定大小嵌入。 此操作是具有静态布局的网页的最佳选择。

响应式设计嵌入假定查看器必须在运行时调整大小以响应其容器的大小变化 DIV. 最常见的用例是将查看器添加到使用灵活页面布局的网页。

在响应式设计嵌入模式下,查看器的行为方式与网页大小其容器的方式有所不同 DIV. 如果网页仅设置容器的宽度 DIV,查看器会根据所使用资产的宽高比自动选择其高度,而不限制其高度。 此功能可确保资产完美地放入视图中,侧边无需任何内边距。 此用例是使用响应式设计布局框架(如Bootstrap或基础)的网页最常见的用例。

否则,如果网页同时设置了查看器容器的宽度和高度 DIV,则查看器仅填充该区域,并遵循网页布局提供的大小。 一个很好的示例是将查看器嵌入到模式叠加中,其中叠加根据Web浏览器窗口大小来调整大小。

固定大小嵌入

可通过执行以下操作将旋转查看器添加到网页:

  1. 将查看器JavaScript文件添加到网页。

  2. 定义容器 DIV.

  3. 设置查看器大小。

  4. 创建和初始化查看器。

  5. 将查看器JavaScript文件添加到网页。

    创建查看器要求您在HTML头中添加脚本标记。 在使用查看器API之前,请确保在 SpinViewer.js. SpinViewer.js 位于 html5/js/ 标准IS — 查看器部署的子文件夹:

    <s7viewers_root>/html5/js/SpinViewer.js

    如果查看器部署在其中一个Adobe的Dynamic Media服务器上,并且来自同一域,则可以使用相对路径。 否则,您将指定一个安装IS-Viewer的AdobeDynamic Media服务器的完整路径。

    相对路径如下所示:

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

    仅引用主查看器JavaScript include 文件。 请勿在网页代码中引用任何可能由查看器逻辑在运行时下载的其他JavaScript文件。 特别是,请勿直接引用HTML5 SDK Utils.js 查看器从 /s7viewers 上下文路径(所谓的整合SDK include)。 原因是 Utils.js 或者,查看器的逻辑以及查看器版本之间的位置更改将完全管理类似的运行时查看器库。 Adobe不会保留旧版次查看器 includes 在服务器上。

    因此,应直接引用任何辅助JavaScript include 当部署了新产品版本时,查看器在页面上的使用会在未来中断查看器功能。

  6. 定义容器DIV。

    在希望查看器显示的页面中添加空DIV元素。 必须定义DIV元素的ID,因为此ID稍后会传递到查看器API。

    占位符DIV是放置元素,这意味着 position CSS属性设置为 relativeabsolute.

    以下是定义的占位符DIV元素的示例:

    <div id="s7viewer" style="position:relative"></div>
    
  7. 设置查看器大小

    您可以通过声明查看器的静态大小 .s7spinviewer 以绝对单位表示的顶级CSS类,或通过使用 stagesize 修饰符。

    您可以将大小调整直接放在CSSHTML页面上,或放在自定义查看器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 对象,则它必须至少将图像服务URL作为 serverUrl 资产及初始资产 asset 参数。 通过基于JSON的初始化API,您可以使用一行代码创建和启动查看器。

    务必要将查看器容器添加到DOM,以便查看器代码可以通过其ID查找容器元素。 某些浏览器会延迟构建DOM,直到网页结束。 为了实现最大兼容,请调用 init() 方法 BODY 标记,或在主体上 onload() 事件。

    同时,容器元素还不一定是网页布局的一部分。 例如,可以使用 display:none 样式。 在这种情况下,查看器会延迟其初始化过程,直到网页将容器元素引回布局时为止。 发生此操作时,查看器加载会自动恢复。

    以下示例用于创建查看器实例,将最小必需的配置选项传递给构造函数并调用 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>
    

    以下代码是嵌入具有固定大小的旋转查看器的普通网页的完整示例:

    <!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>
    

具有无限制高度的响应式设计嵌入

通过响应式设计嵌入,网页通常具有某种灵活的布局,可指示查看器容器的运行时大小 DIV. 就本例而言,假定网页允许查看者的容器 DIV 可获取Web浏览器窗口大小的40%,从而使其高度不受限制。 生成的网页HTML代码如下所示:

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

将查看器添加到此类页面与固定大小嵌入类似,唯一的区别在于您不需要明确定义查看器大小。

  1. 将查看器JavaScript文件添加到网页。
  2. 定义容器DIV。
  3. 创建和初始化查看器。

上述所有步骤与固定大小嵌入的步骤相同。 添加容器 DIV 至现有“持有人” 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>

以下示例页面展示了具有不受限制高度的响应式设计嵌入的更多真实用例:

实时演示

替代演示位置

定义宽度和高度的灵活大小嵌入

如果定义了宽度和高度的灵活大小嵌入,则网页样式会有所不同。 也就是说,它为“holder”提供两种大小 DIV 并将其居中在浏览器窗口中。 此外,网页还会设置 HTMLBODY 元素到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>

使用基于Setter的API嵌入

可以使用基于setter的API和no-args构造函数,而不是使用基于JSON的初始化。 对于该API构造函数,不会获取任何参数,并且配置参数是使用 setContainerId(), setParam()setAsset() 包含单独JavaScript调用的API方法。

以下示例显示了使用基于setter的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>

在此页面上