How do I get a flex box to not be part of the page until I fade it in? I used to do this with \'display: 0;\' and then use jquery .fadeIn(). But now if I set display to 0, when
It seems a bit odd, but what you can do is in the css, set it to display: none
. Then the trick is to set the display
to flex
in your jquery and then hide it again, then fadeIn
:
CSS:
#popupContainer {
/* ... */
display:none;
flex-direction: row;
flex-wrap: wrap;
/* ... */
}
JS:
$("#popupContainer")
.css("display", "flex")
.hide()
.fadeIn();
This works because fadeIn()
will set the item back to its previous non-hidden display
value. So setting flex
and re-hiding it will set this "default" for it to be set back to.
http://jsfiddle.net/z2kxyjcq/1/
$("#popupContainer")
.css("display", "flex")
.hide()
.fadeIn(2000);
#popupContainer {
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
display:none;
flex-direction: row;
flex-wrap: wrap;
justify-content: center;
align-content: flex-start;
align-items: center;
z-index: 15;
background-color: red;
}
#popupContainer *{
border: 1px solid blue;
background-color: white;
}
1
2
a
b
c