Estoy intentando detectar un evento mouseover en un círculo. Yo defino el div círculo de la siguiente manera:Detecta con precisión el evento mouseover para un div con esquinas redondeadas
.circle {
width: 80px;
height: 80px;
-moz-border-radius: 40px;
-webkit-border-radius: 40px;
background-color: #33f;
}
Entonces detectar la mousover usando jQuery así:
$('.circle').mouseover(function() {
$(this).css({backgroundColor:'#f33'});
});
Esto funciona bien, excepto que todo el 80px por 80px área activa el evento mouseover. En otras palabras, solo tocar la esquina inferior derecha de div activa el evento mouseover, aunque el mouse no esté sobre el círculo visible.
¿Hay una forma simple y sencilla de activar el evento mouseover solo en el área circular?
Actualización: Por el bien de esta pregunta, supongamos que el navegador es capaz de CSS3 y representa el radio del borde correctamente. ¿Alguien tiene las habilidades locas de matemáticas/geometría para llegar a una ecuación simple para detectar si el mouse ha ingresado al círculo? Para hacerlo aún más simple, supongamos que es un círculo y no un radio de borde arbitrario.
Demostración: http : //jsbin.com/oqewo (ver fuente) –