如何在柔性盒中褪色?

Lau*_*NMS 37 css jquery

在淡入淡出之前,如何让柔性盒不成为页面的一部分?我曾经用'display:0;'做到这一点 然后使用jquery .fadeIn().但是现在如果我将显示设置为0,当我淡入时,我当然会失去盒子的柔韧性.如果我使用jquery将display设置为flex,那么它只会出现,而不会淡入.

<div class="" id="popupContainer">
<div class="flex-item-popup" id="popup">
    <div class="close"><i class="fa fa-2x fa-times-circle"></i></div>
    <h2></h2>
    <div class='text'></div>
    <div class="videos"></div>
    <div class="flex-container images"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

    #popupContainer {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    display:flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    align-content: flex-start;
    align-items: center;
    z-index: 15;
}
Run Code Online (Sandbox Code Playgroud)

jQuery的:

$(document).ready(function() {
    //???
});
Run Code Online (Sandbox Code Playgroud)

Jam*_*gne 93

这看起来有点奇怪,但你能做的就是在css中设置它display: none.然后诀窍是在你的jquery中设置displayto flex然后再次隐藏它,然后fadeIn:

CSS:

#popupContainer {
    /* ... */

    display:none;
    flex-direction: row;
    flex-wrap: wrap;

    /* ... */
}
Run Code Online (Sandbox Code Playgroud)

JS:

$("#popupContainer")
    .css("display", "flex")
    .hide()
    .fadeIn();
Run Code Online (Sandbox Code Playgroud)

这样做是因为fadeIn()将项目设置回其先前的非隐藏display值.因此,设置flex并重新隐藏它将设置此"默认"以使其重新设置.

http://jsfiddle.net/z2kxyjcq/1/

$("#popupContainer")
    .css("display", "flex")
    .hide()
    .fadeIn(2000);
Run Code Online (Sandbox Code Playgroud)
#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;    
}
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="" id="popupContainer">
<div class="flex-item-popup" id="popup">
    <div class="close"><i class="fa fa-2x fa-times-circle">1</i></div>
    <h2>2</h2>
    <div class='text'>a</div>
    <div class="videos">b</div>
    <div class="flex-container images">c</div>
</div>
Run Code Online (Sandbox Code Playgroud)


ady*_*yry 7

最简单和最干净的方法(如果你可以编辑 DOM)是包装元素,并在 div 和 flex 内部淡化包装

<div class="popup" id="popupContainer">
  <div class="popup__flexbox">
    <div class="popup__flex-item" id="popup">
    <div class="popup__close">
       <i class="fa fa-2x fa-times-circle"></i>
    </div>
    <h2></h2>
    <div class='popup__text'></div>
    <div class="popup__videos"></div>
    <div class="popup__images"></div>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

css:

.popup {
  display: none;
}

.popup__flexbox {
  display: flex;
}
Run Code Online (Sandbox Code Playgroud)

js:

$("#popupContainer").fadeIn();
Run Code Online (Sandbox Code Playgroud)


小智 5

您可以将不透明度设置为0并设置动画:

$('#popupContainer').animate({
    opacity: 1
}, 'fast');
Run Code Online (Sandbox Code Playgroud)