Elemento CSS3 com opacidade: 0 (invisível) responde a eventos do mouse
CSS3 usando Webkit no Safari; Eu tenho um botão que, quando clicado, faz com que uma div desapareça. Essa div é apenas um grande retângulo preenchido e possui alguns botões, um dos quais faz com que a mesma div desapareça.
O problema é este: quando o elemento desapareceu (opacidade: 0) e clico onde estava um dos botões, o onClick ainda está sendo acionado. Em outras palavras, mesmo que o botão não possa ser visto (opacidade: 0), ele ainda está lá e faz parte do modelo de evento. Eu não quero isso
Os botões chamam as seguintes funções:
// This displays the overlay (popup)
function showCategoryPopup() {
// Was playing with the following, but with no success.
// popupCategory.style.display = "block";
// popupCategory.style.visibility = "visible";
// Change the attributes that will be animated.
popupCategory.style.opacity = 1;
popupCategory.style.webkitTransform = "scale(1.0)";
}
function hideCategoryPopup() {
// Change the animated attributes
popupCategory.style.opacity = 0;
popupCategory.style.webkitTransform = "scale(0.7)";
// Even if opacity is 0, we still get mouse events. So, make it hidden?
// popupCategory.style.visibility = "hidden";
// popupCategory.style.display = "none";
}
A classe CSS para a sobreposição é esta:
.popupContainer {
opacity: 0;
-webkit-transform: scale(0.7);
-webkit-transition-duration: 0.3s;
-webkit-transition-timing-function: ease-in-out;
-webkit-transition-delay: initial;
}
Se eu não usar as configurações de visibilidade ou exibição, a animação é boa, mas os eventos mouseClick são acionados para os itens invisíveis.
Se eu usar os blocos, ele liga / desliga sem animação.
Se eu usar o estilo de exibição, ele funcionará, mas, em vez de exibir a animação imediatamente, ele será acionado apenas quando algum outro evento da página for acionado, como outro botão em outro lugar da página.
Pensei em adicionar os "eventos-ponteiro: nenhum" ao estilo usado pela div pop-up depois de oculta, mas o que estou pedindo parece algo que você frequentemente encontra com opacidade, então deve ser um problema frequente.
Pensamentos?