0

I want to make a pure CSS modal window, I found this example. my problem is that the modal windows is shown quickly then disappear on load. when I clic, all is fine. WhenI try the sample olone, it works great, but when I embed it into my huge code, I see this flashing modal window How can I stop it to do that flash onload ?

HTML

<a href="#openModal">Open Modal</a>
<div id="openModal" class="modalDialog">
    <div>   <a href="#close" title="Close" class="close">X</a>
            <h2>Modal Box</h2>
        <p>This is a sample modal box that can be created using the powers of CSS3.</p>

    </div>
</div>

My CSS

.modalDialog {
    position: fixed;
    font-family: Arial, Helvetica, sans-serif;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background: rgba(0, 0, 0, 0.8);
    z-index: 99999;
    opacity:0;
    -webkit-transition: opacity 400ms ease-in;
    -moz-transition: opacity 400ms ease-in;
    transition: opacity 400ms ease-in;
    pointer-events: none;
}
.modalDialog:target {
    opacity:1;
    pointer-events: auto;
}
.modalDialog > div {
    width: 400px;
    position: relative;
    margin: 10% auto;
    padding: 5px 20px 13px 20px;
    border-radius: 10px;
    background: #fff;
    background: -moz-linear-gradient(#fff, #999);
    background: -webkit-linear-gradient(#fff, #999);
    background: -o-linear-gradient(#fff, #999);
}
.close {
    background: #606061;
    color: #FFFFFF;
    line-height: 25px;
    position: absolute;
    right: -12px;
    text-align: center;
    top: -10px;
    width: 24px;
    text-decoration: none;
    font-weight: bold;
    -webkit-border-radius: 12px;
    -moz-border-radius: 12px;
    border-radius: 12px;
    -moz-box-shadow: 1px 1px 3px #000;
    -webkit-box-shadow: 1px 1px 3px #000;
    box-shadow: 1px 1px 3px #000;
}
.close:hover {
    background: #00d9ff;
}
  • 1
    Sounds like its a problem with your huge code and not the code you've pasted. Maybe look at your network tab in debugger tools to see if there is a delay in loading your css file? – Kilmazing Jul 03 '15 at 14:11
  • I think so, I deleted all .js files but I get the same problem. the css loads normally. –  Jul 03 '15 at 14:16
  • Does it fail in all browsers? Maybe try setting the .modalDialog to position:static, I have read there could be a potential problem with fixed positioning here: http://stackoverflow.com/questions/20268962/fixed-attachment-background-image-flicker-disappear-in-chrome-when-coupled-with – Kilmazing Jul 03 '15 at 14:20
  • yes fails with all browsers. –  Jul 03 '15 at 14:35

1 Answers1

0

I changed your fiddle a bit. Instead of transitioning the opacity I put the transition on the background, transitioning the rgba from

background: rgba(0,0,0,0.0);

to

background: rgba(0,0,0,0.8);

I also removed the opacity entirely. Hopefully this will work in your environment.

Fiddle: http://jsfiddle.net/GG9Sa/1092/

Kilmazing
  • 526
  • 7
  • 14