Esta página ha sido traducida del inglés por la comunidad.Aprende más y únete a la comunidad de MDN Web Docs.
-moz-image-rect
No estándar: Esta función no está estandarizada. No recomendamos usar funciones no estándar en producción, ya que tienen un soporte limitado en los navegadores y pueden cambiar o eliminarse. Sin embargo, pueden ser una alternativa adecuada en casos específicos donde no exista una opción estándar.
In this article
Resumen
Este valor para la propiedadCSSbackground-image te permite usar una parte de una imagen de gran tamaño como fondo. Esto permitirá, por ejemplo, usar diferentes partes de una imagen grande como si fueran una sóla imagen grande usada como fondo de diferentes partes de tú contenido.
Funciona de manera similar a la propiedad-moz-image-region , que se usa junto con la propiedadlist-style-image para utilizar partes de imágnes como iconos de listas. Sin embargo puede ser usado para cualquier fondo CSS.
La síntaxis para el rectánigulo es similar a la de la funciónrect() y genera un tipo CSS<shape> . Los cuatro valores son relativos a la esquina superior izquierda de la imagen.
Síntaxis
-moz-image-rect(<uri>, top, right, bottom, left);Valores
<uri>La URI de la imagen de la que se cogera una parte.
topEl borde superior, especificado como
<length>, de la subimagen dentro de la imagen seleccionada.rightEl borde derecho, especificado como
<length>, de la subimagen dentro de la imagen seleccionada.bottomEl borde inferior, especificado como
<length>, de la subimagen dentro de la imagen seleccionada.leftEl borde izquierdo, especificado como
<length>, de la subimagen dentro de la imagen seleccionada.
Ejemplo
Este ejemplo carga una imagen y la usa en cuatro segmento para dibujar el logo de Firefox en cuatro bloques<div> blocks. Si hacemos click en el contenedor los cuatro segmentos rotarán cmabiando los valores de la propiedadbackground-image entre estos cuatro bloques<div>.
CSS
El CSS define un estilo para el contenedor y, posteriormente los estilos para las cuatro cajas que comprenden la imagen completa.
Para el contenedor:
#container { width: 267px; height: 272px; top: 100px; left: 100px; position: absolute; font-size: 16px; text-shadow: white 0px 0px 6px; text-align: center;}posteriormente las cuatro caja se defines las cajas que especifican los segmentos de la imagen. La vamos a ver una por una.
#box1 { background-image: -moz-image-rect(url(firefox.png), 0%, 50%, 50%, 0%); width: 133px; height: 136px; position: absolute;}Esta es la esquina superior izquierda de la imagen. Define un rectángulo que contiene el cuartil superior izquierda de la imagenfirefox.jpg.
#box2 { background-image: -moz-image-rect(url(firefox.png), 0%, 100%, 50%, 50%); width: 133px; height: 136px; position: absolute;}Esto define la esquina superior derecha:
Las otras dos siguen un patrón similar:
#box3 { background-image: -moz-image-rect(url(firefox.png), 50%, 50%, 100%, 0%); width: 133px; height: 136px; position: absolute;}#box4 { background-image: -moz-image-rect(url(firefox.png), 50%, 100%, 100%, 50%); width: 133px; height: 136px; position: absolute;}HTML
Es bastante simple:
<div> <div>Top left</div> <div>Top right</div> <div>Bottom left</div> <div>Bottom right</div></div>Sitúa los 4 segmentos de una imagen en un caja de 2x2 celdas. Estos cuatro elementos están dentro de un bloque<div> más grande cuya función es recibir eventos click y mandarlos al código JavaScript.
El codigo javaScript
Gestiona el evento click cuando el contenedor recibe un click de ratón
function rotate() { var prevStyle = window .getComputedStyle(document.getElementById("box4"), null) .getPropertyValue("background-image"); // Una vez hemos guardado la última, empezamos a rotar. for (var i = 1; i <= 4; i++) { var curId = "box" + i; // Permuta las imágenes de fondo. var curStyle = window .getComputedStyle(document.getElementById(curId), null) .getPropertyValue("background-image"); document.getElementById(curId).style.backgroundImage = prevStyle; prevStyle = curStyle; }}Usawindow.getComputedStyle() para establecer el estilo de cada elemento, cambiándolo al elemento posterior. Destacar que, una vez se empieza se guarda una copia del estilo de la última caja ya que será sobreescrito por el tercer elemento. Simplemente copiando los valores de la propiedadbackground-image de un elemento al siguiente, cuando hacemos click de ratón, conseguiremos el efecto deseado.