Buenos días,
tengo creado un gráfico con canvas con varios rectángulos en horizontal uno detrás de otro.
Me gustaría poder hacer "mouseover" encima de cada rectángulo para mostrar, por ejemplo una div.
Gracias.
Saludos
| |||
MouseOver en rectángulos de canvas Buenos días, tengo creado un gráfico con canvas con varios rectángulos en horizontal uno detrás de otro. Me gustaría poder hacer "mouseover" encima de cada rectángulo para mostrar, por ejemplo una div. Gracias. Saludos |
| ||||
Respuesta: MouseOver en rectángulos de canvas Tomas el elemento a afectar con el evento mouseover y le añades dicho evento, en donde, cuando se produzca, ejecute una función.
Código HTML:
Ver original
Código CSS:
Ver original
Código Javascript:
Ver original Saludos
__________________ «Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío». ― Ayn Rand |
| ||||
Respuesta: MouseOver en rectángulos de canvas Hola: No he visto como poner dinamismo a las imágenes canvas (supongo que será posible), pero con el formato svg sí que se puede hacer: SVG: creación dinámica... Saludos
__________________ Por favor: No hagan preguntas de temas de foros en mensajes privados... no las respondo |
| ||||
Respuesta: MouseOver en rectángulos de canvas Si lo necesitas para cada figura, pues toma todos los elementos canvas y aplícales los eventos.
Código HTML:
Ver original
Código Javascript:
Ver original Básicamente, tomo todos los canvas y Divs del documento y con ayuda de un bucle, voy formando las figuras de los canvas y les aplico los eventos mouseover y mouseout para que se muestre el Div respectivo al posar el puntero del mouse en cada figura. Utilizo una función anónima auto-ejecutable para aplicar correctamente los eventos y creación de figuras a cada canvas. Aquí puedes ver cómo funciona esto. Saludos
__________________ «Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío». ― Ayn Rand Última edición por Alexis88; 07/01/2014 a las 11:50 |
| |||
Respuesta: MouseOver en rectángulos de canvas Hola, muchas gracias por el trabajo pero solo estoy creando un canvas y en él dibujo varios rectángulos: Código HTML: context=canvas.getContext("2d"); for.... context.fillStyle = color; context.fillRect(izquierda,arriba,ancho,alto); .. Saludos |
| ||||
Respuesta: MouseOver en rectángulos de canvas Normalmente, lo que se hace es obtener las coordenadas del mouse sobre el canvas (para eso pueden usarse offsetLeft y offsetTop o las poropidades de event: layerX y layerY u offsetX y offsetY -estas últimas para Explorer-). Una vez que se tienen las coordenadas del mouse, con la propiedad data de getImageData podés obtener el color del pixel sobre el que se encuentra el mouse y así manejar el rollOver de manera condicional:
Código:
//en pseudocódigo: if(color==rojo){ hacer lo que quiero que pase cuando estoy en rectángulo rojo }else if(color==verde){ hacer lo que quiero que pase cuando estoy en rectángulo verde }
__________________ Fast, lightweight, cross-platform framework for building incredible, powerful JavaScript applications |
| |||
Respuesta: MouseOver en rectángulos de canvas Hola, gracias por las respuestas. Esperaba encontrar algo como lo que comentó caricatos con SVG y el ejemplo del enlace que publicó pero si no hay otra opción lo haré por la posición del ratón y píxeles tal como decís. Saludos |
| ||||
Respuesta: MouseOver en rectángulos de canvas Hola: No sé las razones para usar canvas, pero lo que quieres supongo que puede conseguirse de otras maneras... cuadrados pueden simularse con simples capas (div) con posicionamiento absoluto... o con los clásicos mapas de imágenes... sabiendo las coordenadas (si creas un canvas, seguro que las sabes...) En mi página también puedes encontrar un mapa de España con imágenes de sustitución para el efecto rollover... Saludos
__________________ Por favor: No hagan preguntas de temas de foros en mensajes privados... no las respondo |
| |||
Respuesta: MouseOver en rectángulos de canvas Buenos días, la idea era hacer un gráfico de barras horizontal acumulativo en una misma fila (como una barra de progreso). Miré con canvas la facilidad de hacer rectángulos y me puse a ello. Una vez lo tengo todo montado me doy cuenta que necesitaría algo de interactividad como pasar el ratón por encima e indicar valores y esas cosas. Bueno ahora tengo varios casos para probar. O puedo hacer con svg o mediante coordenadas/pixeles. Quizás otra opción podrían ser las simples divs utilizando ...addEventListener("mouseover", function(){... Gracias por las respuestas. Saludos |
Etiquetas: |