¿Cuál es la mejor manera de tener una cosa de tipo "fog of war" donde una imagen está oscurecida, pero luego cuando el usuario pasa sobre la imagen se revela un área alrededor del cursor . Por lo tanto, probablemente una capa diseñada con CSS sobre una imagen, que a medida que el usuario pasa el mouse se vuelve transparente y la imagen se puede ver en un área alrededor del mouse, pero el resto de la imagen aún está oscurecida.Revelando partes de una imagen al mouseover
Respuesta
Si lo que desea es utilizar javascript y css para hacer esto:
- Crear una imagen en negro con un agujero transparente en el medio
- Uso algunos javascript para obtener la posición del ratón
- actualización de la css para establecer la posición de la imagen de niebla en el puntero del mouse
Debería asegurarse de que todo esté en capas correctamente para que su imagen esté debajo de la imagen de niebla, y la niebla imag e está debajo del resto del contenido si esto no ocupa toda la ventana del navegador.
En el lienzo, podría hacer que una capa sobre la imagen sea parcialmente transparente, pero el área cercana al cursor será completamente transparente. Las capas realmente no existen en el lienzo, pero hay marcos que le permiten hacer capas.
en HTML/CSS, podría hacer "mosaicos" de la imagen que tienen 2 capas, una imagen debajo y un PNG parcialmente transparente arriba. Al desplazarse, el PNG del mosaico se establece en display:none
para revelar la imagen debajo.
He encontrado que esto es una pregunta muy buena, así que para los futuros visitantes Voy a dejar esto como una referencia:
$(window).on('load', function() {
var
ctx = $('#canvas')[0].getContext('2d'),
mouse = {x: -100, y: -100};
// fill black
ctx.fillStyle = 'black';
ctx.fillRect(0, 0, ctx.canvas.width, ctx.canvas.height);
// track mouse
$('#canvas').on('mousemove.fog', function (evt) {
mouse.x = evt.offsetX;
mouse.y = evt.offsetY;
});
(function animloop(now) {
var
frame = webkitRequestAnimationFrame(animloop), // use a polyfill here
x = mouse.x,
y = mouse.y,
r = 10,
grad = ctx.createRadialGradient(x, y, 0, x, y, r);
grad.addColorStop(0, "rgba(0, 0, 0, 255)");
grad.addColorStop(1, "rgba(0, 0, 0, 0)");
ctx.globalCompositeOperation = 'destination-out';
ctx.fillStyle = grad;
ctx.arc(x, y, r, 0, 2 * Math.PI, true);
ctx.fill();
}(Date.now()));
});
Eso es realmente genial gracias. Aunque, la intención no era revelar lentamente, sino simplemente revelar esa pequeña porción en el mouse, y cuando el mouse se movía a otra parte, el área donde el mouse debía volver a ser negra. – BerenTW
- 1. ¿Haciendo clic en una imagen pero todavía responde al mouseover?
- 2. ¿visualiza la imagen en mouseover en forma de ventanas?
- 3. Jquery: evento mouseover en el área de mapa de imagen
- 4. mouseover/mouseenter no activado al desplazarse
- 5. Botón WPF Mouseover Image
- 6. Divide la imagen en las partes
- 7. ¿Necesita animar una imagen para alejarse de la posición del cursor en cada mouseover?
- 8. ¿Cómo puedo crear una información sobre herramientas mouseover en una imagen en VB.NET?
- 9. ¿Cómo destaco las partes de un mapa de imagen al pasar el mouse?
- 10. retraso Tricky en mouseover
- 11. ¿Cómo oscurecer una imagen al pasar el mouse?
- 12. Borde CSS en imagen PNG con partes transparentes
- 13. Reemplazar MouseOver con .hoverIntent
- 14. jquery delegate() eventos (mouseover mouseover) se dispara dos veces
- 15. mouseover while mousedown
- 16. Shift + mouseover con jQuery
- 17. ¿Cómo implementar la herencia en JS Revelando el patrón prototipo?
- 18. iOS: Cómo recortar una imagen en las partes útiles (eliminar el borde transparente)
- 19. Cargando partes de una aplicación Rails 3
- 20. WPF DataGrid MouseOver en DataGridRow
- 21. ¿Puedes asignar una imagen al borde derecho?
- 22. WPF Estilos Button MouseOver Pregunta
- 23. Cómo mouseOver en Python WebDriver
- 24. usando partes de Boost
- 25. Color diferentes partes de una cadena RichTextBox
- 26. ¿Asegurando partes de una solicitud HTTP?
- 27. Recuperación de una forma en el mouseover usando KineticJS
- 28. jquery animación continua en mouseover
- 29. CSS hover vs. JavaScript mouseover
- 30. WPF ListView eliminar mouseover efecto
creo que va a hacer el trabajo lo suficientemente bien. Se siente un poco hack-ish, pero funcionará. Gracias :) – BerenTW
Gran respuesta, +1. –