CSS3-Element mit Opacity:0 (unsichtbar) auf Mausereignisse reagiert

CSS3 mit Webkit in Safari, ich habe eine Schaltfläche, wenn darauf geklickt wird, wird ein div eingeblendet werden. Das div ist nur ein großes gefülltes Rechteck und es hat ein paar Tasten in es, eine whichcauses den gleichen div-fade-out.

Das problem ist: Wenn das element ausgeblendet (opacity:0), und ich klicken Sie auf, wo Sie mit einer der Tasten wurde der onClick wird noch gefeuert. In otherwords, auch wenn die Schaltfläche nicht sichtbar ist (opacity:0) es ist immer noch da und ist Teil der event-Modell. Ich möchte das nicht.

Den-Tasten rufen Sie die folgenden Funktionen:

// 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";     

}

Die CSS-Klasse für das overlay ist diese:

.popupContainer {
    opacity: 0;
    -webkit-transform: scale(0.7);
    -webkit-transition-duration: 0.3s;
    -webkit-transition-timing-function: ease-in-out;
    -webkit-transition-delay: initial;
}

Wenn ich nicht die Sicht oder die display-Einstellungen an alle, die animation ist in Ordnung, aber der Mausklick-Ereignisse ausgelöst werden, für die unsichtbaren Elemente.

Wenn ich die Blöcke, dann schaltet on/off mit keine animation.

Wenn ich mit den Anzeige-Stil, dann ist es irgendwie funktioniert, aber anstatt die animation display sofort, dass es nur Triggern, einmal mit einem anderen Ereignis der Seite ausgelöst wird, wie eine andere Taste, die an anderer Stelle auf der Seite.

Dachte ich, vielleicht hinzufügen der "pointer-events:none", um den Stil der pop-up-div, nachdem Sie verborgen, aber was ich verlange, scheint wie etwas, das Sie würde oft in der Begegnung mit der Deckkraft, so muss es ein semi-häufiges problem.

Gedanken?

InformationsquelleAutor Woodster | 2011-01-13
Schreibe einen Kommentar