2009-06-08 8 views
0

Nun, ich habe eine transparente div oder der Hintergrund transparent gesetzt :) css:IE 7, Javascript transparent div Onclick

#lowerLayer 
{ 
    position: fixed; 
    top: 0px; 
    left: 0px; 
    right: 0px; 
    bottom: 0px; 
    width: 100%; 
    height: 100%; 
    background-color: Transparent; 
    cursor: help; 
    z-index: 1; 
} 

Die div .. rechts unter dem Tag gelegt und unter dort ich habe ein Layout.

jquery (dies wird in $ laufen (document) .ready):

$("#lowerLayer").click(function() { 
    $(this).fadeTo("fast", 0, function() { 
     $(this).hide(0); 
    }); 
}); 

Mein Layout funktioniert perfekt in Opera 10 und ich denke, es ist in Opera funktioniert 9 ... aber IE 7 Fehler Schichten, wie sie über dem transparenten div handeln hat unterer z-index sind ...

Antwort

2

Eine einfache Lösung, die transparent div (#lowerLayer) zuletzt in dem hTML-Code (kurz vor der Schließung </body>.

zu platzieren wäre Es ist ein bekanntes Problem mit einigen Browsern (IE zum Beispiel)

EDIT: wie in meinem Kommentar erwähnt, behandelt die blockUI plugin alles, was Sie jemals brauchen, wenn Sie Ihre Seite mit einem Overlay maskieren möchten.

+0

gut war es einen Versuch wert, aber es tat nicht helfen :(+1 – Peter

+1

Wenn das transparente div hat den höchsten z-index, und es ist das letzte in der HTM L, es wird immer über allem auf der Seite sein (mit Ausnahme von Dropdown-Listen im IE, was ein Bug ist). Eine bessere Option wäre die Verwendung des blockUI-Plugins (Ich habe den Link in meiner Antwort hinzugefügt) –

4

Ich hatte das gleiche Problem mit IE7 und fand einfachere Lösung. Anstatt Ihre div transparent mit CSS verwenden, verwenden Sie Javascript, um seine Deckkraft einzustellen.

Ihrem Beispiel folgend:

css Stil

#lowerLayer {
position: fixed;
top: 0px;
left: 0px;
width: 100%;
height: 100%;
background-color: #000;
cursor: help;
z-index: 1;
}

Javascript-Code (zB nach dem DOM-Baum geladen wird)

document.getElementById("lowerLayer").style.filter = "alpha(opacity=0)";

+1

Dies ist eigentlich die richtige Antwort. Scheint, dass wenn ein div leer und transparent ist (keine Hintergrundfarbe), der IE keine Klicks darauf erfasst. Wenn Sie ihm eine Hintergrundfarbe zuweisen und die Deckkraft auf 0 setzen, funktioniert dies. –