Search code examples
cssanimationphotoshoptransitiongif

How to Fade In/Out multiple texts using CSS/jQuery like on Droplr?


I've seen this type of animation on a website just when CSS3 key-frames started to gain momentum, but couldn't find it nor could I replicate it using CSS or jQuery, and here's where I thought some of you could help.

I've animated what I hope to achieve and I've embedded it below. I believe this can be coded using the new CSS3 key-frames or jQuery's .animate(); feature. I don't know. I've tried everything I know, but all in vain.

Here's the GIF animation of what I wanted:

GIF animation where the text "I am" is static and the word "invincible" fades out, the word "awesome" fades in, the word "awesome" fades back out, and the word "invincible" fades back in, in an infinite loop.

I just noticed, http://droplr.com/ uses a very similar transition on their home page, but with a few sliding effects. And the data (words) that come up are all random, all the time. I'd like to know how that is possible!


Solution

  • I know that question is solved, but I thought it might be helpful for someone else so I decided to share xD

    I was looking for something more smoother than the sugestion that here was presented, after spend a time looking i made my own solution

    Here we will need to think a bit in terms of timeline of an keyframe, in that case the text will only be displayed when the another one has already completed his fade animation

    div{
      posititon: relative;
    }
    .js-nametag{
      position: absolute;
    }
    .js-nametag:nth-child(1){
      animation-name: fade;
      animation-fill-mode: both;
      animation-iteration-count: infinite;
      animation-duration: 5s;
      animation-direction: alternate-reverse;  
    }
    
    
    .js-nametag:nth-child(2){
      animation-name: fade;
      animation-fill-mode: both;
      animation-iteration-count: infinite;
      animation-duration: 5s;
      animation-direction: alternate;
    }
    
    @keyframes fade{
        0%,50% {
          opacity: 0;
    }
        100%{
          opacity: 1;
      }
    }
      <p class="js-nametag">Leandro de Lima</p>
      <p class="js-nametag">Game Master</p>

    https://codepen.io/theNewt/details/PdWeKX