¿Cómo puedo crear animaciones interactivas sin Flash? [cerrado]

Tengo un cliente que pregunta acerca de la siguiente imagen que tiene los engranajes girando constantemente, y también muestra la interacción del mouse sobre el engranaje y el texto es más oscuro.

https://www.dropbox.com/s/n84yizriltx1rj7/RotatingGears.jpg

¿Cómo haría uno para hacer esto sin Flash?

Debería buscar en HTML5 canvas y posibles bibliotecas como Rapheal.js. De lo contrario, tendrías que crear rebanadas de imágenes gif y juntar las piezas.
Me preocuparía más el hecho de que los engranajes conectados en ese asunto no podrían girar físicamente.
Esta pregunta parece estar fuera de tema porque se trata de la implementación del código en lugar del diseño gráfico. Sugeriría migrar a StackOverflow
@Scott Se puede hacer fácilmente con js. No es necesario un lienzo que no es compatible con los navegadores de muchas personas.
Para mayor claridad, ¿puede publicar qué navegadores necesita compatibilidad?

Respuestas (4)

Creo que todo eso podría hacerse con la animación SVG SMIL. El inconveniente inmediato de esto es que actualmente no es compatible con ninguna versión de Internet Explorer, por lo que es una solución bastante poco práctica. [1]

Aquí hay un ejemplo básico de una imagen SVG giratoria (tomada de Wikipedia ):

ejemplo de svg giratorio

Los efectos de mouseover se pueden agregar con JavaScript

FYI, esto es compatible con Firefox en Linux, pero usará el 100 % de la CPU para ejecutar la animación al máximo de fps.

Dependiendo de los navegadores que necesite admitir, puede salirse con la suya con css3. Pequeña muestra http://jsfiddle.net/4Vz63/1/ Acabo de buscar en Google 'rotación continua css3'. ¿Quizás puedas usar 2 gifs animados diferentes para cada equipo y usarlos para fondos de pequeños divs? De esta manera, puede controlar el evento moseover y mouseout (use más claro para uno más oscuro para el otro). Es posible que deba usar js para controlar el resto de los elementos: líneas y elementos de texto.

Las animaciones CSS3 solo son compatibles con ie10+ y requieren el código webkit en Safari y Chrome. A menos que esté desarrollando algo estrictamente para usar en teléfonos móviles o tabletas, no es una buena idea burlarse de las características más avanzadas de CSS3. Es decir, suponiendo que se trata de un proyecto profesional. caniuse.com/css-animation
... ¿te perdiste esta parte de mi respuesta? : 'Dependiendo de los navegadores que necesite admitir'
Solo agrego que es poco probable que sea factible en un proyecto profesional en este momento. No es un caso simple de "esto no funcionará en nada anterior a ie9, bueno", es más como que la página no funcionará para al menos un tercio del tráfico.

Suena como algo que podrías hacer entre varias imágenes, gifs para cualquiera de los engranajes giratorios y css. Como no en animaciones css3, sino en código antiguo que funciona en todos los navegadores.

La forma más fácil es con javascript o jquery, pero necesitaría entender javascript para eso.

Con respecto a su otra pregunta con el ejemplo de jfiddle, intente agregar:

onmouseover="this.style.opacity=1.0;this.filters.alpha.opacity=100" onmouseout="this.style.opacity=0.2;this.filters.alpha.opacity=20"

a la etiqueta div.

Si esa biblioteca de Rafael no está disponible, aún puede usar este método, por ejemplo, con un gif animado:

Coloque el gif en la página y luego superponga divs con un radio de esquina grande para crear regiones semiopacas circulares dispuestas encima del gif, y luego el texto emergente como un elemento div oculto separado, quizás con coordenadas absolutas negativas. Cuando pasa el mouse sobre un div en particular, reduce la opacidad y luego reposiciona el cuadro de texto adecuado y establece la visibilidad del div de texto en 'visible'.

Si bien puede simplificar las cosas si el gif es un solo elemento, probablemente sea más conservador para el ancho de banda colocar cada engranaje individualmente. En este caso, coloca cada gif en un div y ajusta la opacidad con el desplazamiento.

Tenga en cuenta también que para un solo engranaje aislado, no necesita animar una rotación completa de 360 ​​%: para la rotación en el sentido de las agujas del reloj, solo necesita animar de manera que el diente a la izquierda del que está en las 12 llegue a las 12 posición de las horas.

Personalmente, me gusta la sensación del lado del cliente animado sobre la marcha, pero tenga cuidado con los problemas de soporte del navegador y especialmente con el tiempo de procesamiento de la CPU. Esta es la navegación principal o al menos la edad de aterrizaje, así que pruébalo en una computadora más antigua.