He estado tratando de hacer esto durante horas, pero hasta ahora no he hecho ningún progreso.
Tengo un sitio con algunas animaciones, algunas se activarán al hacer clic y otras al pasar el mouse. algo similar a la animación que se encuentra en este sitio: http://www.pixelwrapped.com/ la cola de gato responde cuando escalas el navegador, también escala junto con él.
este es el codigo que estoy usando para crear la animacion
.monster {
position: absolute;
width: 100px;
height: 100px;
margin: 2% auto;
background: url('img/le-cloud.png') left center;
overflow: auto;
display: block;
left: 20%;
top: 40%;
}
.monster:hover {
position: absolute;
width: 100px;
height: 100px;
margin: 2% auto;
background: url('img/le-cloud.png') left center;
animation: play .9s steps(18);
overflow: auto;
display: block;
left: 20%;
top: 40%;
}
Encontré este tutorial que usa porcentajes, que funciona para cambiar 1 cuadro sin reproducir los 18 cuadros completos en este ejemplo, tengo otras animaciones compuestas por más de 30 sprites, investigué spritely.js pero no respondía.
¿Alguna idea de cómo puedo resolver esto?
¡Descubrí cómo hacerlo eventualmente! En caso de que a alguien todavía le importe, déjame explicarte un poco para que no pases por lo que yo pasé:
<style>
div.sprite {
margin: 0 auto;
width: 40%;
/* Change this to what ever value you desire*/
height: 0;
padding-bottom: 40%;
background-image: url("le-cloud-copy.png");
/* Add the sprite sheet here, must be on a staright line*/
background-position: 0 0;
background-size: 1800%;
/* I have 18 sprites in the sheet thus it's 1800%, if it was 4 you'd use 400% and so on*/
display: block;
}
div.sprite:hover {
/* background-position: 500% 0;*/
animation: play .9s steps(18);
/* 18 steps to go over al the sprites i have, if you had 4 in the sprite the value would be 4 for example */
}
@keyframes play {
100% {
background-position: 1800% 0;
}
}
</style>
Y el bit mágico está aquí , incluye esta biblioteca y debería funcionar.
<script src="js/prefixfree.min.js"></script>
Intente usar transformaciones scale
y cualquier punto de ruptura que necesite. Es compatible con IE9 y superior, pero se puede emular en IE < 9 usando la zoom
propiedad de Microsoft. Otros son (no fácilmente) posibles usando el filtro MS Matrix.
@media(max-width:1024px){
.monster {
transform:scale(0.5);
}
}
scale
para un diseño receptivo es una mala práctica.scale()
para imágenes está bien siempre que 1) el valor de la escala sea menor que 1 (más de 1 siempre está borroso), 2) la imagen está posicionada absolutamente (de modo que la diferencia en el cuadro delimitador y la apariencia visual no importa), 3) el rendimiento no importa mucho (sería mejor cargar una imagen más pequeña si solo se requiere una imagen más pequeña), y 4) si se combina con otras transformaciones, debe ser muy probado porque los navegadores tienen problemas con ciertos tipos de transformaciones, especialmente cuando se combinan
Vicente
Joonas
Nour
Joonas
Nour
Nour
Vicente
Nour
Zach Saucier
:hover
estado. Solo necesita tener los que cambia desde el estado inicialLuciano
Caí