CSS transition fade in

前端 未结 4 1914
被撕碎了的回忆
被撕碎了的回忆 2020-12-03 02:36

So I have used CSS transitions before but I have a unique case with this one. I am writing a custom plugin for creating modals. Essentially I create a div on the fly

相关标签:
4条回答
  • 2020-12-03 03:14

    OK, first of all I'm not sure how it works when you create a div using (document.createElement('div')), so I might be wrong now, but wouldn't it be possible to use the :target pseudo class selector for this?

    If you look at the code below, you can se I've used a link to target the div, but in your case it might be possible to target #new from the script instead and that way make the div fade in without user interaction, or am I thinking wrong?

    Here's the code for my example:

    HTML

    <a href="#new">Click</a> 
    <div id="new">
        Fade in ... 
    </div>
    

    CSS

    #new {
        width: 100px;
        height: 100px;
        border: 1px solid #000000;
        opacity: 0;    
    }
    
    
    #new:target {
        -webkit-transition: opacity 2.0s ease-in;
           -moz-transition: opacity 2.0s ease-in;
             -o-transition: opacity 2.0s ease-in;
                                      opacity: 1;
    }
    

    ... and here's a jsFiddle

    0 讨论(0)
  • 2020-12-03 03:15

    I believe you could addClass to the element. But either way you'd have to use Jquery or reg JS

    div {
      opacity:0;
      transition:opacity 1s linear;*
    }
    div.SomeClass {
      opacity:1;
    }
    
    0 讨论(0)
  • 2020-12-03 03:23

    I always prefer to use mixins for small CSS classes like fade in / out incase you want to use them in more than one class.

    @mixin fade-in {
        opacity: 1;
        animation-name: fadeInOpacity;
        animation-iteration-count: 1;
        animation-timing-function: ease-in;
        animation-duration: 2s;
    }
    
    @keyframes fadeInOpacity {
        0% {
            opacity: 0;
        }
        100% {
            opacity: 1;
        }
    }
    

    and if you don't want to use mixins, you can create a normal class .fade-in.

    0 讨论(0)
  • 2020-12-03 03:25

    CSS Keyframes support is pretty good these days:

    .fade-in {
    	opacity: 1;
    	animation-name: fadeInOpacity;
    	animation-iteration-count: 1;
    	animation-timing-function: ease-in;
    	animation-duration: 2s;
    }
    
    @keyframes fadeInOpacity {
    	0% {
    		opacity: 0;
    	}
    	100% {
    		opacity: 1;
    	}
    }
    <h1 class="fade-in">Fade Me Down Scotty</h1>

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