CSS3 transition fadein with display:none

后端 未结 5 873
野性不改
野性不改 2021-02-07 10:34

I\'ve got some element I want to fade with CSS3. It can be simply done by 2 classes with opacity: 0 and opacity: 1, b

相关标签:
5条回答
  • 2021-02-07 11:03

    Instead of display:none, try using visibility: hidden;

    FIDDLE

    See this article which states:

    visibility animates despite the CSS Basic Box Model spec saying “Animatable: no”

    0 讨论(0)
  • 2021-02-07 11:03

    You can make an element not accept clicks with this:

    .hidden
    {
        pointer-events:none;
    }
    
    0 讨论(0)
  • 2021-02-07 11:09

    You can do it by 100% CSS pure code.

    .menu > li > ul{
        display: none;
    }
    .menu > li:hover > ul {
        display: block;
        animation-duration: 0.5s;
        animation-name: fadeInFromNone;
        animation-fill-mode: forwards;
        -webkit-animation-duration: 0.5s;
        -webkit-animation-name: fadeInFromNone;
        -webkit-animation-fill-mode: forwards;
        -ms-animation-duration: 0.5s;
        -ms-animation-name: fadeInFromNoneIE;
        -ms-animation-fill-mode: forwards;
    }
    @-webkit-keyframes fadeInFromNone {
        0% {
            opacity: 0
        }
    
        1% {
            opacity: 0
        }
    
        100% {
            opacity: 1
        }
    }
    
    @keyframes fadeInFromNoneIE {
        0% {
            opacity: 0
        }
    
        1% {
            opacity: 0
        }
    
        100% {
            opacity: 1
        }
    }
    
    @keyframes fadeInFromNone {
        0% {
            opacity: 0
        }
    
        1% {
            opacity: 0
        }
    
        100% {
            opacity: 1
        }
    }
    
    0 讨论(0)
  • 2021-02-07 11:14

    Noticed the example in the JS Fiddle above was broken, fixed the code here:

     <style>
    div {
        position: absolute;
        transition: all 2s;
    }
    div.opa {
        opacity: 0;
        visibility:hidden;
    }
    </style>
    <div class=opa>dsdsds</div>
    <br> <br>
    <p><a href="#">clickme</a></p>
    <script>
    $('a').click(function(){
        $('div').toggleClass('opa');    
    })
    </script>
    

    Fixed the fiddle:

    0 讨论(0)
  • 2021-02-07 11:18

    try to make an element that do not accept click by applying z-index to negative value.

    a{z-index: -999;}
    

    Oh! I understood your problem. You can set visibility: collapse; better than hidden I think.

    0 讨论(0)
提交回复
热议问题