2012-08-10 21 views
5

No puedo explicar esto. Tengo un div que es un botón. Uso la clase activa de psuedo y posición: relativa; para moverlo ligeramente hacia abajo y hacia la derecha cuando se hace clic, para darle una animación. Por alguna razón, hay un pequeño espacio muerto en este botón en Chrome a mitad de camino entre el texto y el borde del botón. La clase psuedo todavía se activa pero el Javascript en el botón no funciona. Si elimino la posición relativa, el problema desaparece. Esto también ocurre en Firefox, pero el espacio muerto en Firefox está en el mismo borde donde el botón se mueve, lo que tiene sentido pero también necesita ser reparado.Pequeño espacio muerto en un botón div en cromo

he creado un jsFiddle para mostrar el problema: http://jsfiddle.net/dillydadally/CUHA7/6/

Alguna idea de por qué ocurre esto? ¿Hay alguna forma de arreglarlo?

+0

Extraño que solo con Chrome no se llama a la devolución de llamada cuando se llega al "punto óptimo". –

Respuesta

5

CSS. Es por el margen : 10px; en #btn

EDITAR

Si utiliza onMouseDown en lugar onclick que va a funcionar.

Explicando:

El seudo clase está siendo activar antes de la onClick. Si cambia los valores de: active de 2px a 20px. Verá que esto sucede incluso si hace clic en el medio del botón.

Así que después de los nuevos valores de la izquierda y de arriba establecidos por el activo, el ratón no es en la parte superior de las div más y no se puede registrar el clic (presione y libere).

Pero onmousedown todavía se activa porque no depende de la liberación del botón del mouse.

+1

no, porque el margen afecta fuera del botón, no a la sección div, por lo que este no debería ser el problema. – Nuxy

+0

Lo siento, lo entendí mal. Pensé que te quejabas del espacio entre el texto y el botón. –

+0

está hablando de un efecto extraño. Cuando hace clic en algún área del div, el CSS: active se ejecuta pero la llamada JavaScript no se está produciendo. – Nuxy

Cuestiones relacionadas