Zoom en línea

Última actualización: 2023-05-23
  • Creado para:
  • Developer
    User

Visor de zoom en línea es un visor de imágenes. Muestra una imagen estática con la versión ampliada sobre esa imagen estática cuando un usuario se desplaza por encima o toca la vista principal. Este visor funciona con conjuntos de imágenes y la navegación se realiza mediante muestras. Está diseñado para trabajar en equipos de escritorio y dispositivos móviles.

NOTA

Las imágenes que utilizan IR (Image Rendering) o UGC (User-Generated Content) no son compatibles con este visor.

Tipo de visor 504.

Consulte Requisitos y requisitos previos del sistema.

URL de demostración

https://s7d9.scene7.com/s7viewers/html5/FlyoutViewer.html?asset=Scene7SharedAssets/ImageSet-Views-Sample&config=Scene7SharedAssets/Universal_HTML5_Zoom_Inline&stagesize=500,400

Uso del visor de zoom en línea

Visor de zoom en línea representa un archivo JavaScript principal y un conjunto de archivos de ayuda (una sola inclusión JavaScript con todos los componentes del SDK del visor utilizados por este visor, recursos y CSS) descargados por el visor durante la ejecución.

El visualizador de zoom en línea se puede utilizar en el modo emergente utilizando la página del HTML lista para la producción proporcionada con los visualizadores del servicio de imágenes o en el modo incrustado, donde se integra en una página web de destino mediante una API documentada.

La configuración y el desollado son similares a los de otros visores. Puede utilizar CSS personalizado para aplicar aspectos.

Consulte Referencia de comando común a todos los visores: atributos de configuración y Referencia de comando común a todos los visores: URL

Interactuar con el visor de zoom en línea

El visor de zoom en línea admite gestos de un solo toque y de varios toques que son comunes en otras aplicaciones móviles.

Gesto

Descripción

Un solo toque

Activa la vista flotante o cambia entre el nivel de zoom principal y secundario en las muestras y selecciona una nueva miniatura.

Barrido o gesto horizontal

Se desplaza por la lista de muestras de la barra de muestras.

Barrido vertical

Si el gesto se realiza dentro del área de muestras, realiza un desplazamiento de página nativo.

El visor también admite la entrada táctil y la entrada del ratón en dispositivos Windows con pantalla táctil y ratón. Sin embargo, esta compatibilidad se limita únicamente a los exploradores web Chrome, Internet Explorer 11 y Edge.

Este visor es totalmente accesible mediante el teclado.

Consulte Navegación y accesibilidad del teclado.

Incrustación del visor de zoom en línea

Las distintas páginas web tienen diferentes necesidades de comportamiento del visualizador. A veces, una página web proporciona un vínculo en el que se puede hacer clic para abrir el visor en una ventana independiente del explorador. En otros casos, puede ser necesario incrustar el visor directamente en la página de alojamiento. En este último caso, la página web puede tener un diseño de página estático o utilizar un diseño interactivo que se muestre de forma diferente en diferentes dispositivos o para diferentes tamaños de ventana del explorador. Para satisfacer estas necesidades, el visor admite tres modos de funcionamiento principales: emergente, incrustación de tamaño fijo e incrustación adaptable.

Ventana emergente

En el modo emergente, el visor se abre en una ventana o pestaña independiente del explorador web. Ocupa todo el área de la ventana del explorador y se ajusta cuando se cambia el tamaño de la ventana del explorador o la orientación del dispositivo.

Este modo es el más común para dispositivos móviles. La página web carga el visor mediante window.open() Llamada de JavaScript, correctamente configurada A elemento HTML o cualquier otra forma adecuada.

Se recomienda utilizar la página de HTML predeterminada para el modo emergente llamado FlyoutViewer.html. Se encuentra bajo la html5/ de la implementación estándar de Image Serving-Viewers:

<s7viewers_root>/html5/FlyoutViewer.html

También es necesario tener configurado el componente FlyoutZoomView para que funcione en el modo de zoom en línea. Se recomienda utilizar el de forma predeterminada Scene7SharedAssets/Universal_HTML5_Zoom_Inline ajuste preestablecido para el visor de zoom en línea o un ajuste preestablecido personalizado derivado de él. La personalización visual se puede lograr aplicando CSS personalizado.

El siguiente es un ejemplo de código de HTML que abre el visor en una nueva ventana:

 <a href="http://s7d1.scene7.com/s7viewers/html5/FlyoutViewer.html?asset=Scene7SharedAssets/ImageSet-Views-Sample&config=Scene7SharedAssets/Universal_HTML5_Zoom_Inline"target="_blank">Open popup viewer</a>

Incrustación de tamaño fijo e incrustación adaptable

En el modo incrustado, el visor se añade a la página web existente, que puede tener ya contenido de clientes no relacionado con el visor. El visor normalmente ocupa solo una parte de los bienes raíces de la página web.

Los casos de uso principales son páginas web orientadas para equipos de escritorio o tabletas, y también páginas web adaptables que ajustan el diseño automáticamente según el tipo de dispositivo.

El modo de incrustación de tamaño fijo se utiliza cuando el visualizador no cambia su tamaño después de su carga inicial. Esta opción es perfecta para las páginas web que tienen un diseño de página estático.

El modo de incrustación de diseño interactivo supone que el visor debe cambiar de tamaño durante el tiempo de ejecución en respuesta al cambio de tamaño de su contenedor DIV. El caso de uso más común es añadir un visor a una página web que utilice un diseño de página flexible.

Cuando utilice el modo de incrustación de diseño interactivo con el Visor de zoom en línea, asegúrese de especificar puntos de interrupción explícitos para la imagen de vista principal mediante imagereload parámetro. Lo ideal es que combine los puntos de interrupción con los puntos de interrupción de anchura del visor según lo dictado por la página web de CSS.

En el modo de incrustación de diseño interactivo, el visualizador se comporta de forma diferente según la forma en que se utilice un contenedor de página web DIV tiene el tamaño adecuado. Si la página web establece únicamente la anchura del contenedor DIVSin restringir su altura, el visualizador elige automáticamente su altura según la proporción de aspecto del recurso que se utilice. Esta funcionalidad significa que el recurso se adapta perfectamente a la vista sin ningún relleno en los lados. Este caso de uso en particular es el más común para las páginas web que utilizan marcos de diseño adaptable como Bootstrap o Foundation.

En caso contrario, si la página web establece tanto la anchura como la altura del contenedor del visor DIV, el visor rellena únicamente ese área y sigue el tamaño indicado en el diseño de la página web. Un buen ejemplo de uso es la incrustación del visualizador en una superposición modal, donde el tamaño de la superposición depende del tamaño de la ventana del explorador web.

Incrustación de tamaño fijo

Para agregar el visor a una página web, haga lo siguiente:

  1. Añadir el archivo JavaScript del visor a la página web.

  2. Definición del contenedor DIV.

  3. Configuración del tamaño del visor.

  4. Creación e inicialización del visor.

  5. Añadir el archivo JavaScript del visor a la página web.

    La creación de un visor requiere que añada una etiqueta de script en el encabezado del HTML. Antes de usar la API de visor, asegúrese de incluir lo siguiente FlyoutViewer.js. FlyoutViewer.js está en lo siguiente html5/js/ de la implementación estándar de IS-Viewers:

<s7viewers_root>/html5/js/FlyoutViewer.js

Puede utilizar una ruta relativa si el visor está implementado en uno de los servidores de Dynamic Media de Adobe y se proporciona desde el mismo dominio. De lo contrario, especifique una ruta completa a uno de los servidores de Dynamic Media de Adobe que tengan instalados los visores de IIS.

Una ruta relativa tiene el siguiente aspecto:

<script language="javascript" type="text/javascript" src="/s7viewers/html5/js/FlyoutViewer.js"></script>
NOTA

Solo referencia al visor principal JavaScript include en la página. No haga referencia a ningún archivo JavaScript adicional en el código de la página web que la lógica del visor pueda descargar durante la ejecución. En concreto, no haga referencia directamente al SDK de HTML5 Utils.js biblioteca cargada por el visor desde /s7viewers ruta de contexto (denominado SDK consolidado) include). El motivo es que la ubicación de Utils.js Para bibliotecas de visualizadores en tiempo de ejecución similares, la lógica del visualizador las gestiona completamente y la ubicación cambia entre versiones del visualizador. El Adobe no mantiene las versiones anteriores del visor secundario includes en el servidor.

Como resultado, se hace referencia directa a cualquier JavaScript secundario include que el usuario utiliza en la página interrumpe la funcionalidad del usuario en el futuro cuando se implemente una nueva versión del producto.

  1. Definición del DIV de contenedor.

    Añada un elemento DIV vacío a la página donde desea que aparezca el visor. El elemento DIV debe tener su ID definido, ya que este ID se pasa posteriormente a la API del visor.

    El DIV de marcador de posición es un elemento posicionado, lo que significa que la variable position La propiedad CSS se establece en relative o absolute.

    Es responsabilidad de la página web especificar la z-index para el elemento DIV de marcador de posición. Al hacerlo, se asegura de que la parte flotante del visor aparezca sobre los demás elementos de la página web.

    A continuación se muestra un ejemplo de un elemento DIV de marcador de posición definido:

    <div id="s7viewer" style="position:relative;z-index:1"></div>
    
  2. Configuración del tamaño del visor.

    Este visor muestra miniaturas cuando se trabaja con conjuntos de varios elementos. En sistemas de escritorio, las miniaturas se colocan debajo de la vista principal. Al mismo tiempo, el visor permite el intercambio del recurso principal durante el tiempo de ejecución mediante setAsset() API. Como desarrollador, tiene control sobre cómo administra el visor el área de miniaturas en el área inferior cuando el nuevo recurso solo tiene un elemento. Es posible mantener intacto el tamaño del visor exterior y permitir que la vista principal aumente su altura y ocupe el área de miniaturas. O bien, puede mantener el tamaño de la vista principal estático y contraer el área del visor exterior, dejando que el contenido de la página web suba, y luego utilizar los bienes raíces de la página libre que quedan de las miniaturas.

    Para mantener intactos los límites del visor exterior, defina el tamaño para .s7flyoutviewer clase CSS de nivel superior en unidades absolutas. El tamaño en CSS se puede ajustar directamente en la página del HTML o en un archivo CSS de visor personalizado, y luego asignarse a un registro de ajuste preestablecido de visor en Dynamic Media Classic, o pasarse explícitamente mediante el comando de estilo.

    Consulte Personalizar visor de zoom en línea para obtener más información sobre cómo aplicar estilo al visor con CSS.

    A continuación se muestra un ejemplo de definición del tamaño del visor exterior estático en una página de HTML:

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

    Puede ver el comportamiento con un área de visor exterior fija en la siguiente página de muestra. Tenga en cuenta que cuando cambia entre conjuntos, el tamaño del visor exterior no cambia:

    https://experienceleague.adobe.com/tools/dynamic-media-demo/viewers-ref/inlinezoom/InlineZoom-fixed-outer-area.html?lang=es

    Para que las dimensiones de la vista principal sean estáticas, defina el tamaño del visor en unidades absolutas para la vista interna Container Componente de SDK que utiliza .s7flyoutviewer .s7container Selector de CSS. Además, debe anular el tamaño fijo definido para .s7flyoutviewer clase CSS de nivel superior en el visor CSS predeterminado, configurándola como auto.

    A continuación, se muestra un ejemplo de definición del tamaño del visor para el dispositivo interno Container Componente del SDK para que el área de vista principal no cambie su tamaño al cambiar el recurso:

    #s7viewer.s7flyoutviewer {
     width: auto;
     height: auto;
    }
    #s7viewer.s7flyoutviewer .s7container {
     width: 640px;
     height: 480px;
    }
    

    La siguiente página de ejemplo muestra el comportamiento del visor con un tamaño de vista principal fijo. Tenga en cuenta que cuando cambia entre conjuntos, la vista principal permanece estática y el contenido de la página web se mueve verticalmente:

    https://experienceleague.adobe.com/tools/dynamic-media-demo/viewers-ref/inlinezoom/InlineZoom-fixed-main-view.html?lang=es

    Además, el visor CSS predeterminado proporciona un tamaño fijo para su área exterior de forma predeterminada.

  3. Creación e inicialización del visor.

    Cuando haya completado los pasos anteriores, cree una instancia de s7viewers.FlyoutViewer , pase toda la información de configuración a su constructor y llame a init() en una instancia de visor. La información de configuración se pasa al constructor como un objeto JSON. Como mínimo, este objeto debe tener containerId campo que contiene el nombre del ID de contenedor del visor y el valor anidado params Objeto JSON con parámetros de configuración compatibles con el visor. En este caso, la variable params el objeto debe tener al menos la URL del servicio de imágenes pasada como serverUrl propiedad; el recurso inicial como asset parámetro, ruta base para cargar CSS como contentUrl parámetro y nombre de ajuste preestablecido como config parámetro. La API de inicialización basada en JSON permite crear e iniciar el visor con una sola línea de código.

    Es importante tener el contenedor del visor añadido al DOM para que el código del visor pueda encontrar el elemento contenedor por su ID. Algunos exploradores retrasan la creación de DOM hasta el final de la página web. Para conseguir la máxima compatibilidad, llame al método init() método justo antes del cierre BODY o en el cuerpo onload() evento.

    Al mismo tiempo, el elemento contenedor no debe formar parte necesariamente del diseño de la página web todavía. Por ejemplo, se puede ocultar usando display:none estilo asignado a él. En este caso, el visor retrasa su proceso de inicialización hasta el momento en que la página web devuelve el elemento contenedor al diseño. Cuando se produce esta acción, la carga del visor se reanuda automáticamente.

    A continuación se muestra un ejemplo de cómo crear una instancia de visor, pasar las opciones de configuración mínimas necesarias al constructor y llamar a init() método. El ejemplo supone inlineZoomViewer es la instancia del visualizador; s7viewer es el nombre del marcador de posición DIV; http://s7d1.scene7.com/is/image/ es la URL del servicio de imágenes; y Scene7SharedAssets/ImageSet-Views-Sample es el recurso:

    <script type="text/javascript">
    var inlineZoomViewer = new s7viewers.FlyoutViewer({
     "containerId":"s7viewer",
    "params":{
     "asset":"Scene7SharedAssets/ImageSet-Views-Sample",
    "config" : "Scene7SharedAssets/Universal_HTML5_Zoom_Inline",
    "contenturl" : "http://s7d1.scene7.com/is/content/",
    "serverurl":"http://s7d1.scene7.com/is/image/"
    }
    }).init();
    </script>
    

    El siguiente código es un ejemplo completo de una página web trivial que incrusta el visor de zoom en línea con un tamaño fijo:

    <!DOCTYPE html>
    <html>
    <head>
    <script type="text/javascript" src="http://s7d1.scene7.com/s7viewers/html5/js/FlyoutViewer.js"></script>
    <style type="text/css">
    #s7viewer.s7flyoutviewer {
     width: 640px;
     height: 480px;
    }
    </style>
    </head><body>
    <div id="s7viewer" style="position:relative;z-index:1;"></div>
    <script type="text/javascript">
    var inlineZoomViewer = new s7viewers.FlyoutViewer({
     "containerId":"s7viewer",
    "params":{
     "asset":"Scene7SharedAssets/ImageSet-Views-Sample",
    "config" : "Scene7SharedAssets/Universal_HTML5_Zoom_Inline",
    "contenturl" : "http://s7d1.scene7.com/is/content/",
     "serverurl":"http://s7d1.scene7.com/is/image/"
    }
    }).init();
    </script>
    </body>
    </html>
    

Inserción de diseño interactivo con altura sin restricciones

Con incrustación de diseño interactivo, la página web normalmente tiene algún tipo de diseño flexible que dicta el tamaño de tiempo de ejecución del contenedor del visualizador DIV. En el siguiente ejemplo, supongamos que la página web permite el contenedor del visor DIV para ocupar el 40 % del tamaño de la ventana del explorador web, sin restringir su altura. El código del HTML de la página web tendría el siguiente aspecto:

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

Añadir el visor a una página de este tipo es similar a los pasos para la incrustación de tamaño fijo. La única diferencia es que debe anular el tamaño fijo del CSS del visor predeterminado con el tamaño establecido en unidades relativas.

  1. Añadir el archivo JavaScript del visor a la página web.
  2. Definición del contenedor DIV.
  3. Configuración del tamaño del visor.
  4. Creación e inicialización del visor.

Todos los pasos anteriores son los mismos que con la incrustación de tamaño fijo con las tres excepciones siguientes:

  • añadir el contenedor DIV al "titular" existente DIV;
  • añadido imagereload parámetro con puntos de interrupción explícitos;
  • en lugar de establecer un tamaño de visor fijo mediante unidades absolutas, utilice CSS que establece el visor width y height al 100 %, como en el caso siguiente:
#s7viewer.s7flyoutviewer {
 width: 100%;
 height: 100%;
}

El siguiente código es un ejemplo completo. Observe cómo cambia el tamaño del visor cuando se cambia el tamaño del explorador y cómo la proporción de aspecto del visor coincide con el recurso.

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="http://s7d1.scene7.com/s7viewers/html5/js/FlyoutViewer.js"></script>
<style type="text/css">
.holder {
 width: 40%;
}
#s7viewer.s7flyoutviewer {
 width: 100%;
 height: 100%;
}
</style>
</head>
<body>
<div class="holder">
<div id="s7viewer" style="position:relative;z-index:1"></div>
</div>
<script type="text/javascript">
var inlineZoomViewer = new s7viewers.FlyoutViewer({
 "containerId":"s7viewer",
"params":{
 "asset":"Scene7SharedAssets/ImageSet-Views-Sample",
"config" : "Scene7SharedAssets/Universal_HTML5_Zoom_Inline",
"contenturl" : "http://s7d1.scene7.com/is/content/",
 "serverurl":"http://s7d1.scene7.com/is/image/",
 "imagereload":"1,breakpoint,200;400;800;1600"
}
}).init();
</script>
</body>
</html>

La siguiente página de ejemplos ilustra usos más reales del diseño interactivo incrustado con una altura sin restricciones:

Demostraciones en directo

Ubicación de demostración alternativa

Incrustación de tamaño flexible con anchura y altura definidas

Si hay una incrustación de tamaño flexible con la anchura y la altura definidas, el estilo de la página web es diferente. Proporciona ambos tamaños a la "holder" DIV y lo centra en la ventana del explorador. Además, la página web establece el tamaño del HTML y BODY elemento al 100 por ciento.

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

El resto de los pasos de incrustación son idénticos a los pasos utilizados para la incrustación de diseño interactivo con altura sin restricciones. El ejemplo resultante es el siguiente:

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="http://s7d1.scene7.com/s7viewers/html5/js/FlyoutViewer.js"></script>
<style type="text/css">
html, body {
 width: 100%;
 height: 100%;
}
.holder {
 position: absolute;
 left: 20%;
 top: 20%;
 width: 60%;
height: 60%;
}
#s7viewer.s7flyoutviewer {
 width: 100%;
 height: 100%;
}
</style>
</head>
<body>
<div class="holder">
<div id="s7viewer" style="position:relative;z-index:1"></div>
</div>
<script type="text/javascript">
var inlineZoomViewer = new s7viewers.FlyoutViewer({
 "containerId":"s7viewer",
"params":{
 "asset":"Scene7SharedAssets/ImageSet-Views-Sample",
"config" : "Scene7SharedAssets/Universal_HTML5_Zoom_Inline",
"contenturl" : "http://s7d1.scene7.com/is/content/",
 "serverurl":"http://s7d1.scene7.com/is/image/",
 "imagereload":"1,breakpoint,200;400;800;1600"
}
}).init();
</script>
</body>
</html>

Incrustación mediante una API basada en Setter

En lugar de utilizar la inicialización basada en JSON, es posible utilizar la API basada en establecedores y el constructor sin argumentos. El uso de este constructor de API no toma ningún parámetro y los parámetros de configuración se especifican mediante setContainerId(), setParam(), y setAsset() Métodos de API, con llamadas de JavaScript independientes.

El siguiente ejemplo ilustra el uso de incrustación de tamaño fijo con API basada en establecedores:

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="http://s7d1.scene7.com/s7viewers/html5/js/FlyoutViewer.js"></script>
<style type="text/css">
#s7viewer.s7flyoutviewer {
 width: 640px;
 height: 480px;
}
</style>
</head><body>
<div id="s7viewer" style="position:relative;z-index:1;"></div>
<script type="text/javascript">
var inlineZoomViewer = new s7viewers.FlyoutViewer();
inlineZoomViewer.setContainerId("s7viewer");
inlineZoomViewer.setParam("serverurl", "http://s7d1.scene7.com/is/image/");
inlineZoomViewer.setParam("config", "Scene7SharedAssets/Universal_HTML5_Zoom_Inline");
inlineZoomViewer.setParam("contenturl", "http://s7d1.scene7.com/is/content/");
inlineZoomViewer.setAsset("Scene7SharedAssets/ImageSet-Views-Sample");
inlineZoomViewer.init();
</script>
</body>
</html>

En esta página