Ich arbeite auf einer Website mit einem Popup, das einzige, was ich vermisse, ist ein Unschärfe-Effekt, wenn dieses Pop-up angezeigt wird. Dieses Pop-Up wird jedes Mal angezeigt, wenn die Seite geladen wird. Daher habe ich hier auf SO einen tollen Unschärfe-Code gefunden. Obwohl dieser Code für eine Funktion verwendet wird, bei der der Unschärfeeffekt durch eine Schaltfläche angezeigt wird. Aus diesem Grund habe ich den Code geändert, so dass anstelle der Schaltfläche jetzt onLoad
ist, die aus dem Body-Tag gestartet wird. Das einzige Problem ist, dass die Unschärfe vor dem tatsächlichen Pop-up angezeigt wird, das es nicht soll. Ich habe versucht, die z-index
im CSS-Code für das Popup zu ändern, aber es funktioniert nicht.Blur hinter Popup auf Seite laden Problem
Hier ist die JSFiddle für meinen Code (modifiziert) Auch das funktioniert anscheinend nicht auf Safari.
HTML:
<div id="overlay">
<div id="popup">
<a href="javascript:myBlurFunction(0);">X</a>
</div>
</div>
<body id="main_container" onload="myBlurFunction(1)">
</body>
Javascript:
myBlurFunction = function(state) {
var containerElement = document.getElementById('main_container');
var overlayEle = document.getElementById('overlay');
if (state) {
overlayEle.style.display = 'block';
containerElement.setAttribute('class', 'blur');
} else {
overlayEle.style.display = 'none';
containerElement.setAttribute('class', null);
}
};
CSS:
.blur {
filter: blur(5px);
-webkit-filter: blur(5px);
-moz-filter: blur(5px);
-o-filter: blur(5px);
-ms-filter: blur(5px);
}
#overlay {
position: fixed;
display: none;
left: 0px;
top: 0px;
right: 0px;
bottom: 0px;
background: rgba(255,255,255,.8);
z-index: 999;
}
#popup {
position: absolute;
width: 400px;
height: 200px;
background: rgb(255,255,255);
border: 5px solid rgb(90,90,90);
left: 0px;
right: 0px;
top: 0px;
bottom: 0px;
margin: auto;
}
Hier ist die JSFiddle für den Lagercode aus der SO-Antwort.
Vielen Dank, ich habe habe es in meinen ursprünglichen Code implementiert und es funktioniert jetzt wie ein Zauber. – Sm00rf9000