how fade in a flex box?

后端 未结 4 697
遥遥无期
遥遥无期 2021-01-30 20:15

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

4条回答
  •  有刺的猬
    2021-01-30 20:52

    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;    
    }
    
    

提交回复
热议问题