缩放查看器是显示可缩放图像的图像查看器。 此查看器可处理图像集,并且使用样本完成导航。 它具有缩放工具、全屏支持、色板和一个可选的关闭按钮。 它设计为可在台式机和移动设备上工作。
此查看器不支持使用IR(图像渲染)或UGC(用户生成的内容)的图像。
查看器类型502。
参见 系统要求和先决条件.
缩放查看器表示一个主JavaScript文件和一组帮助文件(单个JavaScript包含此特定查看器使用的所有Viewer SDK组件、资产、CSS),这些文件由查看器在运行时下载。
您可以在弹出模式下使用随IS-Viewers提供的生产就绪HTML页或嵌入模式下使用缩放查看器,在嵌入模式下,使用文档记录的API将其集成到目标网页中。
其配置和外观设计与其他查看器的配置和外观设计类似。 所有外观设计都是通过自定义CSS实现的。
参见 所有查看器通用的命令引用 — 配置属性 和 所有查看器通用的命令引用 — URL
缩放查看器支持以下在其他移动设备应用程序中常见的触摸手势。 当查看器无法处理用户的轻扫手势时,它将事件转发给Web浏览器以执行本机页面滚动。 通过此类功能,即使查看器占据设备屏幕区域的大部分区域,用户仍可浏览页面。
手势 |
说明 |
---|---|
单点按 |
选择样本中的新缩略图。 在主视图中,隐藏或显示用户界面元素。 |
双击 |
放大一个级别,直到达到最大放大率。 下一个双击手势会将查看器重置为初始查看状态。 |
捏合 |
放大或缩小。 |
水平轻扫或轻扫 |
在色板栏中滚动浏览色板列表。 如果图像处于重置状态,并且 框架转换 参数设置为slide时,资产会随幻灯片动画一起更改。 对于其他 框架转换 模式,该手势执行本机页面滚动。 如果放大图像,它将水平移动图像。 如果图像移动到视图边缘并且以相同的方向执行滑动,则手势执行本机页面滚动。 |
垂直轻扫 |
如果图像处于重置状态,则手势执行本机页面滚动。 放大图像时,它将垂直移动图像。 如果图像移动到视图边缘并且以相同的方向执行滑动,则手势执行本机页面滚动。 如果笔势在样本区域中完成,它将执行本机页面滚动。 |
查看器支持在带有触摸屏和鼠标的Windows设备上输入触摸和鼠标。 但是,此支持仅适用于Chrome、Internet Explorer 11和Edge Web浏览器。
此查看器可使用键盘完全访问。
参见 键盘辅助功能和导航.
不同的网页对查看者的行为有不同的需求。 有时,网页会提供一个链接,在选中该链接后,会在单独的浏览器窗口中打开查看器。 在其他情况下,需要直接将查看器嵌入到托管页面中。 在后一种情况下,网页可能具有静态布局,或者使用响应式设计,该设计在不同的设备上或对于不同的浏览器窗口大小显示不同。 为了满足这些需求,查看器支持三种主要操作模式:弹出窗口、固定大小嵌入和响应式设计嵌入。
关于弹出模式
在弹出模式下,查看器将在单独的Web浏览器窗口或选项卡中打开。 它会取用整个浏览器窗口区域,并在浏览器调整大小或设备方向更改时进行调整。
此模式最适用于移动设备。 网页使用以下方式加载查看器 window.open()
JavaScript调用,正确配置 A
HTML元素或任何其他合适的方法。
建议您将现成的HTML页用于弹出操作模式。 即装即用的HTML页称为 ZoomViewer.html
它位于 html5/
标准IS-Viewers部署的子文件夹,如下所示:
<s7viewers_root>/html5/ZoomViewer.html
应用自定义CSS以实现页面的自定义外观。
以下是在新窗口中打开查看器的HTML代码示例:
<a href="http://s7d1.scene7.com/s7viewers/html5/ZoomViewer.html?asset=Scene7SharedAssets/ImageSet-Views-Sample"
target="_blank">Open popup viewer</a>
关于固定大小嵌入模式和响应式设计嵌入模式
在嵌入式模式下,查看器将添加到现有网页,该网页可能已有某些与查看器无关的客户内容。 查看者通常只占用网页的一部分空间。
主要用例是面向台式机或平板电脑设备的网页,以及根据设备类型自动调整布局的响应式设计页面。
当查看器在初始加载后未更改其大小时,使用固定大小嵌入。 此选项对于具有静态布局的网页是最佳选择。
响应式设计嵌入模式假定由于查看器容器的大小变化,在运行时有必要调整查看器大小 DIV
. 最常见的用例是将查看器添加到使用灵活布局的网页。
在响应式设计嵌入模式下,查看器的行为方式有所不同,具体取决于网页确定其容器大小的方式 DIV
. 如果网页仅设置容器的宽度 DIV
如果不限制高度,查看器会根据所用资源的纵横比自动选择高度。 此逻辑可确保资源完全符合视图要求,并且不会出现任何边距。 此用例最常见于使用响应式布局框架(如Bootstrap和Foundation)的网页。
如果网页同时设置了查看器容器的宽度和高度 DIV
,查看器会填充该区域,并遵循网页提供的大小。 例如,将查看器嵌入到模式叠加中,其中叠加根据Web浏览器窗口大小调整大小。
通过执行以下操作将查看器添加到网页:
将查看器JavaScript文件添加到网页。
定义容器DIV。
设置查看器大小。
创建和初始化查看器。
将查看器JavaScript文件添加到网页。
创建查看器需要您在HTML头中添加脚本标记。 在使用查看器API之前,请确保包括 ZoomViewer.js. 此 ZoomViewer.js 文件位于 html5/js/ 标准IS-Viewers部署的子文件夹:
<s7viewers_root>/html5/js/ZoomViewer.js
如果查看器部署在一台Adobe Dynamic Media Classic服务器上,并且来自同一域,则可以使用相对路径。 否则,请指定已安装IS-Viewers的某个Adobe Dynamic Media Classic服务器的完整路径。
相对路径如下所示:
<script language="javascript" type="text/javascript" src="/s7viewers/html5/js/ZoomViewer.js"></script>
仅引用主查看器JavaScript include
文件。 请勿在网页代码中引用任何可能由查看器的逻辑在运行时下载的其他JavaScript文件。 特别是,请勿直接引用HTML5 SDK Utils.js
由查看器加载的库,从 /s7viewers
上下文路径(所谓的整合SDK) include
)。 原因在于 Utils.js
或类似的运行时查看器库完全由查看器的逻辑管理,并且查看器版本之间的位置会发生变化。 Adobe不保留辅助查看器的旧版本 includes
在服务器上。
因此,直接引用任何辅助JavaScript include
将来部署新产品版本时,页面上查看器使用的功能会中断查看器。
定义容器DIV。
向要显示查看器的页面中添加一个空DIV元素。 DIV元素必须定义其ID,因为此ID稍后会被传递到查看器API。
占位符DIV是一个定位元素,这意味着 position
CSS属性设置为 relative
或 absolute
.
以下是定义的占位符DIV元素的示例:
<div id="s7viewer" style="position:relative"></div>
设置查看器大小。
此查看器在处理多项目集时显示缩略图,在桌面系统上,缩略图位于主视图下方。 同时,查看器允许在执行时间使用交换主资源 setAsset()
API。 作为开发人员,当新资产只有一个项目时,您可以控制查看器管理底部缩略图区域的方式。 可以保持外部查看器大小不变,并允许主视图增加其高度并占据缩略图区域。 或者,您可以保持主视图大小为静态并折叠外部查看器区域,让网页内容向上移动,并使用缩略图上多余的自由屏幕空间。
要保持外部查看器边界不变,请定义 .s7zoomviewer
以绝对单位表示的顶级CSS类。 可以将CSS中的大小调整置于“HTML”页面上。 或者,也可以将其放入自定义查看器CSS文件中,该文件稍后将分配给Dynamic Media Classic中的查看器预设记录,或者使用样式命令显式传递。
参见 自定义缩放查看器 有关使用CSS为查看器设置样式的更多信息。
以下是在“HTML”页中定义静态外部查看器大小的示例:
#s7viewer.s7zoomviewer {
width: 640px;
height: 480px;
}
您可以在下例中查看带有固定外部查看器的行为。 请注意,在集之间切换时,外部查看器大小不会更改:
要使主视图尺寸为静态尺寸,请以绝对单位为内部视图定义查看器大小 Container
使用的SDK组件 .s7zoomviewer
.s7container
CSS选择器,或使用 stagesize
修饰符。
以下是定义内部视图的查看器大小的示例 Container
SDK组件,以便在切换资源时主视图区域不会更改其大小:
#s7viewer.s7zoomviewer .s7container {
width: 640px;
height: 480px;
}
以下演示页面显示了固定主视图大小的查看器行为。 请注意,在页面集之间切换时,主视图将保持静态,网页内容将垂直移动。
您可以设置 stagesize
在Dynamic Media Classic中的查看器预设记录中的修饰符。 或者,您可以使用查看器初始化代码明确传递它 params
收藏集或作为API调用发送,如本帮助的命令引用部分中所述,如下所示:
zoomViewer.setParam("stagesize",
"640,480");
建议使用基于CSS的方法,并用于此示例。
创建和初始化查看器。
完成上述步骤后,您将创建一个实例 s7viewers.ZoomViewer
类,将所有配置信息传递到其构造函数,并调用 init()
方法。
配置信息作为JSON对象传递给构造函数。 此对象至少应具有 containerId
保存查看器容器ID名称并嵌套的字段 params
包含查看器支持的配置参数的JSON对象。 在本例中, params
对象必须至少将图像服务URL传递为 serverUrl
及初始资产重新分类为 asset
参数。 基于JSON的初始化API允许您使用一行代码创建和启动查看器。
务必要将查看器容器添加到DOM,以便查看器代码可以按其ID查找容器元素。 某些浏览器会延迟构建DOM,直到网页结尾。 要获得最大的兼容性,请调用 init()
紧靠结束位置之前的方法 BODY
标签上,或正文上 onload()
事件。
同时,容器元素还不一定是网页布局的一部分。 例如,可使用以下方式隐藏该内容: display:none
为其分配的样式。 在这种情况下,查看器会延迟其初始化过程,直到网页将容器元素带回布局为止。 执行此操作后,查看器加载会自动恢复。
以下示例介绍了如何创建查看器实例、将所需的最少配置选项传递给构造函数,以及调用 init()
方法。 此示例假定 zoomViewer
是查看器实例, s7viewer
是占位符DIV的名称, http://s7d1.scene7.com/is/image/
是图像服务URL,并且 Scene7SharedAssets/ImageSet-Views-Sample
是资产。
<script type="text/javascript">
var zoomViewer = new s7viewers.ZoomViewer({
"containerId":"s7viewer",
"params":{
"asset":"Scene7SharedAssets/ImageSet-Views-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/ZoomViewer.js"></script>
<style type="text/css">
#s7viewer.s7zoomviewer {
width: 640px;
height: 480px;
}
</style>
</head>
<body>
<div id="s7viewer" style="position:relative"></div>
<script type="text/javascript">
var zoomViewer = new s7viewers.ZoomViewer({
"containerId":"s7viewer",
"params":{
"asset":"Scene7SharedAssets/ImageSet-Views-Sample",
"serverurl":"http://s7d1.scene7.com/is/image/"
}
}).init();
</script>
</body>
</html>
通过响应式设计嵌入,网页通常具有某种灵活的布局,可指定查看器容器的运行时大小 DIV
. 对于以下示例,假设网页允许查看器的容器 DIV
将网页浏览器窗口大小的40%保留为无限制高度。 网页HTML代码如下所示:
<!DOCTYPE html>
<html>
<head>
<style type="text/css">
.holder {
width: 40%;
}
</style>
</head>
<body>
<div class="holder"></div>
</body>
</html>
将查看器添加到此类页面与固定大小嵌入的步骤类似。 唯一的区别是,您不需要显式定义查看器大小。
上述所有步骤与固定大小的嵌入步骤相同。 将容器DIV添加到现有 "holder"
DIV。 以下代码是一个完整的示例。 请注意浏览器调整大小时查看器大小的变化情况,以及查看器长宽比与资源的匹配情况。
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="http://s7d1.scene7.com/s7viewers/html5/js/ZoomViewer.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 zoomViewer = new s7viewers.ZoomViewer({
"containerId":"s7viewer",
"params":{
"asset":"Scene7SharedAssets/ImageSet-Views-Sample",
"serverurl":"http://s7d1.scene7.com/is/image/"
}
}).init();
</script>
</body>
</html>
以下示例页面说明了高度不受限制的响应式设计嵌入的更多实际用途:
如果定义了宽度和高度的灵活大小嵌入,则网页的样式会不同。 它将两种大小提供给 "holder"
在浏览器窗口中进行DIV和居中对齐。 此外,该网页还设置 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/ZoomViewer.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 zoomViewer = new s7viewers.ZoomViewer({
"containerId":"s7viewer",
"params":{
"asset":"Scene7SharedAssets/ImageSet-Views-Sample",
"serverurl":"http://s7d1.scene7.com/is/image/"
}
}).init();
</script>
</body>
</html>
可以使用基于setter的API和no-args构造函数,而不是使用基于JSON的初始化。 使用此API构造函数不接受任何参数,并且配置参数是使用 setContainerId()
, setParam()
、和 setAsset()
API方法具有单独的JavaScript调用。
以下示例说明了如何将固定大小嵌入与基于setter的API结合使用:
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="http://s7d1.scene7.com/s7viewers/html5/js/ZoomViewer.js"></script>
<style type="text/css">
#s7viewer.s7zoomviewer {
width: 640px;
height: 480px;
}
</style>
</head>
<body>
<div id="s7viewer" style="position:relative"></div>
<script type="text/javascript">
var zoomViewer = new s7viewers.ZoomViewer();
zoomViewer.setContainerId("s7viewer");
zoomViewer.setParam("serverurl", "http://s7d1.scene7.com/is/image/");
zoomViewer.setAsset("Scene7SharedAssets/ImageSet-Views-Sample");
zoomViewer.init();
</script>
</body>
</html>