Zoom

El visor de zoom es un visor de imágenes que muestra una imagen ampliable. Este visor funciona con conjuntos de imágenes y la navegación se realiza mediante muestras. Tiene herramientas de zoom, compatibilidad con pantalla completa, muestras y un botón de cierre opcional. Está diseñado para funcionar con equipos de escritorio y dispositivos móviles.

NOTA

Este visor no admite las imágenes que utilizan IR (procesamiento de imágenes) o UGC (contenido generado por el usuario).

Tipo de visor 502.

Consulte Requisitos y requisitos previos del sistema.

Dirección URL de la demostración

https://s7d9.scene7.com/s7viewers/html5/ZoomViewer.html?asset=Scene7SharedAssets/ImageSet-Views-Sample

Uso del visor de zoom

El visor de zoom representa un archivo JavaScript principal y un conjunto de archivos de ayuda (un solo JavaScript incluye todos los componentes del SDK de visor utilizados por este visor en particular, recursos y CSS) descargados por el visor en tiempo de ejecución.

Puede utilizar el visor de zoom en modo emergente utilizando una página HTML lista para la producción proporcionada con los visualizadores IS o en modo incrustado, en la que se integra en la página web de destino mediante API documentada.

La configuración y el desollado son similares a los de los demás visores. Toda la apariencia se logra mediante CSS personalizada.

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

Interactuar con el visor de zoom

El visor de zoom admite los siguientes gestos táctiles que son comunes en otras aplicaciones móviles. Cuando el usuario no puede procesar el gesto de barrido del usuario, reenvía el evento al explorador web para realizar el desplazamiento nativo de la página. Este tipo de funcionalidad permite al usuario navegar por la página aunque el visor ocupe la mayor parte del área de la pantalla del dispositivo.

Gesto

Descripción

Un solo toque

Selecciona una nueva miniatura en las muestras. En la vista principal, oculta o revela los elementos de la interfaz de usuario.

Doble toque

Amplía un nivel hasta alcanzar la ampliación máxima. El siguiente gesto de doble toque restablece el visor al estado de visualización inicial.

Pellizcar

Amplía o reduce.

Barrido horizontal o deslizamiento

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

Si la imagen se encuentra en estado de restablecimiento y el parámetro frametransition se establece en diapositiva, el recurso se cambia con la animación de la diapositiva. Para otros modos de transición de marcos el gesto realiza el desplazamiento nativo de la página.

Si la imagen se amplía, la imagen se mueve horizontalmente. Si la imagen se mueve al borde de la vista y se realiza un barrido en la misma dirección, el gesto realiza el desplazamiento nativo de la página.

Barrido vertical

Si la imagen está en estado de restablecimiento, el gesto realiza el desplazamiento nativo de la página.

Cuando la imagen se amplía, la imagen se mueve verticalmente. Si la imagen se mueve al borde de la vista y se realiza un barrido en la misma dirección, el gesto realiza el desplazamiento nativo de la página.

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

El visor admite la entrada táctil y la entrada de ratón en dispositivos Windows con una pantalla táctil y un ratón. Sin embargo, esta compatibilidad está limitada únicamente a los navegadores web Chrome, Internet Explorer 11 y Edge.

Este visor es totalmente accesible mediante teclado.

Consulte Accesibilidad del teclado y navegación.

Incrustación del visor de zoom

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

Acerca del modo emergente

En el modo emergente, el visor se abre en una ventana o pestaña independiente del explorador web. Toma todo el área de la ventana del explorador y se ajusta en caso de que se cambie el tamaño 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 utilizando window.open() llamada de JavaScript, el elemento HTML A configurado correctamente o cualquier otro método adecuado.

Se recomienda utilizar una página HTML predeterminada para el modo de operación emergente. La página HTML predeterminada se llama ZoomViewer.html y se encuentra en la subcarpeta html5/ de la implementación de los visores IS estándar, como se muestra a continuación:

<s7viewers_root>/html5/ZoomViewer.html

Aplique CSS personalizada para que la página tenga un aspecto personalizado.

A continuación se muestra un ejemplo de código HTML que abre el visor en la nueva ventana:

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

Acerca del modo de incrustación de tamaño fijo y el modo de incrustación de diseño interactivo

En el modo integrado, el visor se añade a la página web existente, que puede tener ya algún contenido de cliente no relacionado con el visor. Normalmente, el visor solo ocupa una parte de los bienes raíces de la página web.

Los casos de uso principales son páginas web orientadas a equipos de escritorio o tabletas, y también páginas diseñadas con capacidad de respuesta que ajustan el diseño automáticamente en función del tipo de dispositivo.

La incrustación de tamaño fijo se utiliza cuando el visor no cambia su tamaño después de la carga inicial. Esta opción es la mejor opción para páginas web con diseño estático.

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

En el modo de incrustación de diseño interactivo, el visor se comporta de forma diferente en función del tamaño de la página web para su contenedor DIV. Si la página web solo establece la anchura del contenedor DIV y deja su altura sin restricciones, el visor selecciona automáticamente su altura según la proporción de aspecto del recurso que se utiliza. Esta lógica garantiza que el recurso encaje perfectamente en la vista sin ningún relleno en los lados. Este caso de uso es el más común para las páginas web que usan marcos de diseño interactivos como Bootstrap, Fundación, etc.

Si la página web establece la anchura y la altura del contenedor DIV del visor, este rellena esa área y sigue el tamaño que la página web proporciona. Por ejemplo, si integra el visor en una superposición modal, el tamaño de la superposición depende del tamaño de la ventana del explorador web.

Integración de tamaño fijo

Para añadir 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.

    Para crear un visor es necesario agregar una etiqueta de script en el encabezado HTML. Antes de utilizar la API del visor, asegúrese de incluir ZoomViewer.js. El archivo ZoomViewer.js se encuentra en la subcarpeta html5/js/ de la implementación estándar de los visores IS:

<s7viewers_root>/html5/js/ZoomViewer.js

Puede utilizar una ruta relativa si el visor está implementado en uno de los servidores de Adobe Dynamic Media Classic y se suministra desde el mismo dominio. De lo contrario, se especifica una ruta completa a uno de los servidores de Adobe Dynamic Media Classic que tienen instalados los visores IS.

La ruta relativa tiene el siguiente aspecto:

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

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

Como resultado, poner una referencia directa a cualquier JavaScript include secundario que utilice el visor en la página rompe la funcionalidad del visor en el futuro cuando se implemente una nueva versión del producto.

  1. Definición del contenedor DIV.

    Agregue un elemento DIV vacío a la página donde desee que aparezca el visor. El elemento DIV debe tener su ID definido, ya que este ID se pasa más tarde a la API del visor.

    El marcador de posición DIV es un elemento posicionado, lo que significa que la propiedad position CSS está establecida en relative o absolute.

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

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

    Este visor muestra miniaturas cuando se trabaja con conjuntos de varios elementos, las miniaturas de los sistemas de escritorio se colocan debajo de la vista principal. Al mismo tiempo, el visor permite el intercambio del recurso principal en tiempo de ejecución mediante la API setAsset(). Como desarrollador, tiene control sobre cómo el visor gestiona el área de miniaturas en la parte 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 estático el tamaño de la vista principal y contraer el área del visor exterior, lo que permite que el contenido de la página web se desplace hacia arriba y utilizar el resto de espacio de la pantalla libre de las miniaturas.

    Para mantener intactos los límites exteriores del visor, defina el tamaño de la clase CSS de nivel superior .s7zoomviewer en unidades absolutas. El tamaño en CSS se puede colocar directamente en la página HTML o en un archivo CSS de visor personalizado, que más tarde se asigna a un registro preestablecido de visor en Dynamic Media Classic o se pasa explícitamente mediante un comando de estilo.

    Consulte Personalización del visor de zoom para obtener más información sobre cómo diseñar el visor con CSS.

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

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

    Puede ver el comportamiento con un visor exterior fijo en el siguiente ejemplo. 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/zoom/ZoomViewer-fixed-outer-area.html?lang=es?lang=es

    Para que las dimensiones de vista principales sean estáticas, defina el tamaño del visor en unidades absolutas para el componente Container SDK interno mediante el selector .s7zoomviewer .s7container CSS o utilizando el modificador stagesize.

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

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

    La siguiente página de demostración muestra el comportamiento del visor con un tamaño fijo de vista principal. 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/zoom/ZoomViewer-fixed-main-view.html?lang=es?lang=es

    Puede configurar el modificador stagesize en el registro preestablecido de visualizador en Dynamic Media Classic, o puede pasarlo explícitamente con el código de inicialización del visualizador con la colección params o como una llamada de API como se describe en la sección Referencia de comandos de esta Ayuda, como se muestra en el siguiente ejemplo:

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

    Se recomienda un enfoque basado en CSS que se utiliza en este ejemplo.

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

    Cuando haya completado los pasos anteriores, cree una instancia de la clase s7viewers.ZoomViewer, pase toda la información de configuración a su constructor y llame al método 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 un campo containerId que contenga el nombre del ID de contenedor del visor y un objeto JSON anidado params con parámetros de configuración compatibles con el visor. En este caso, el objeto params debe tener al menos la dirección URL del servicio de imágenes pasada como propiedad serverUrl y el recurso inicial como parámetro asset. La API de inicialización basada en JSON le permite crear e iniciar el visor con una sola línea de código.

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

    Al mismo tiempo, el elemento contenedor no debe formar parte necesariamente del diseño de página web todavía. Por ejemplo, puede ocultarse utilizando el estilo display:none asignado. En este caso, el visor retrasa su proceso de inicialización hasta el momento en que la página web vuelve a poner el elemento contenedor en el diseño. Cuando esto sucede, la carga del visor se reanuda automáticamente.

    El siguiente es un ejemplo de creación de una instancia de visor, pasar las opciones de configuración mínimas necesarias al constructor y llamar al método init(). En este ejemplo se supone que zoomViewer es la instancia del visor, 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 zoomViewer = new s7viewers.ZoomViewer({ 
     "containerId":"s7viewer", 
    "params":{ 
     "asset":"Scene7SharedAssets/ImageSet-Views-Sample", 
     "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 vídeo con un tamaño fijo:

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

Diseño interactivo con altura ilimitada

Con la incrustación de diseño interactivo, la página web normalmente tiene algún tipo de diseño flexible en su lugar que dicta el tamaño de tiempo de ejecución del contenedor del visor DIV. En el siguiente ejemplo, supongamos que la página web permite que el contenedor DIV del visor tome el 40 % del tamaño de la ventana del explorador web, sin restringir su altura. El código 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 no es necesario definir explícitamente el tamaño del visor.

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

Todos los pasos anteriores son los mismos que con la incrustación de tamaño fijo. Agregue el contenedor DIV al DIV existente "holder". 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/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> 

La página de ejemplos siguientes ilustra más usos reales de la incrustación de diseño interactivo con altura ilimitada:

Demostraciones en directo

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

En caso de incrustación de tamaño flexible con anchura y altura definidas, el estilo de la página web es diferente. Proporciona ambos tamaños al DIV "holder" y lo centra en la ventana del explorador. Además, la página web establece el tamaño del elemento HTML y BODY en 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 el diseño interactivo incrustado con altura ilimitada. El ejemplo resultante es el siguiente:

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

Incrustación mediante API basada en establecedor

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

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

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

En esta página