【问题标题】:Prevent last css animation from hiding防止最后一个 CSS 动画隐藏
【发布时间】:2017-09-15 01:59:29
【问题描述】:

我在网上找到了一个 CSS 动画来循环浏览网站标题,但此刻,当最后一个标题出现时,它也隐藏了,这意味着最后没有可见的标题。

我花了最后一个小时试图解决的问题是如何让 css 动画像现在这样工作,除非最后一个标题出现,而不是滑出和隐藏,它只是停留在那里。 ..

这是我所拥有的:

.rw-sentence {
  margin: 0;
  text-align: left;
  text-shadow: 1px 1px 1px rgba(255, 255, 255, 0.8);
}

.rw-sentence span {
  font-size: 200%;
  font-weight: normal;
}

.rw-words {
  display: inline;
}

.rw-words-1 span {
  position: absolute;
  opacity: 0;
  -webkit-animation: rotateWord 7.5s linear;
  -ms-animation: rotateWord 7.5s linear;
  animation: rotateWord 7.5s linear;
}

.rw-words-1 span:nth-child(2) {
  -webkit-animation-delay: 1.5s;
  -ms-animation-delay: 1.5s;
  animation-delay: 1.5s;
}

.rw-words-1 span:nth-child(3) {
  -webkit-animation-delay: 3s;
  -ms-animation-delay: 3s;
  animation-delay: 3s;
}

.rw-words-1 span:nth-child(4) {
  -webkit-animation-delay: 4.5s;
  -ms-animation-delay: 4.5s;
  animation-delay: 4.5s;
}

.rw-words-1 span:nth-child(5) {
  -webkit-animation-delay: 6s;
  -ms-animation-delay: 6s;
  animation-delay: 6s;
}

.rw-words-1 span:nth-child(6) {
  -webkit-animation-delay: 7.5s;
  -ms-animation-delay: 7.5s;
  animation-delay: 7.5s;
}

@-webkit-keyframes rotateWord {
  0% {
    opacity: 0;
  }
  2% {
    opacity: 0;
    -webkit-transform: translateY(-30px);
  }
  5% {
    opacity: 1;
    -webkit-transform: translateY(0px);
  }
  17% {
    opacity: 1;
    -webkit-transform: translateY(0px);
  }
  20% {
    opacity: 0;
    -webkit-transform: translateY(30px);
  }
  80% {
    opacity: 0;
  }
  100% {
    opacity: 0;
  }
}

@-ms-keyframes rotateWord {
  0% {
    opacity: 0;
  }
  2% {
    opacity: 0;
    -ms-transform: translateY(-30px);
  }
  5% {
    opacity: 1;
    -ms-transform: translateY(0px);
  }
  17% {
    opacity: 1;
    -ms-transform: translateY(0px);
  }
  20% {
    opacity: 0;
    -ms-transform: translateY(30px);
  }
  80% {
    opacity: 0;
  }
  100% {
    opacity: 0;
  }
}

@keyframes rotateWord {
  0% {
    opacity: 0;
  }
  2% {
    opacity: 0;
    -webkit-transform: translateY(-30px);
    transform: translateY(-30px);
  }
  5% {
    opacity: 1;
    -webkit-transform: translateY(0px);
    transform: translateY(0px);
  }
  17% {
    opacity: 1;
    -webkit-transform: translateY(0px);
    transform: translateY(0px);
  }
  20% {
    opacity: 0;
    -webkit-transform: translateY(30px);
    transform: translateY(30px);
  }
  80% {
    opacity: 0;
  }
  100% {
    opacity: 0;
  }
}

@media screen and (max-width: 768px) {
  .rw-sentence {
    font-size: 18px;
  }
}

@media screen and (max-width: 320px) {
  .rw-sentence {
    font-size: 9px;
  }
}
<span class="h2 homeTitle rw-words rw-words-1">
  <span>First headline.</span>
  <span>Second headline.</span>
  <span>Third headline.</span>
  <span>Fourth headline.</span>
  <span>Fifth headline.</span>
  <span>My final headline...</span>
</span>

【问题讨论】:

    标签: html css animation css-animations


    【解决方案1】:

    尝试一下,我认为它很有帮助

    .rw-sentence {
      margin: 0;
      text-align: left;
      text-shadow: 1px 1px 1px rgba(255, 255, 255, 0.8);
    }
    
    .rw-sentence span {
      font-size: 200%;
      font-weight: normal;
    }
    
    .rw-words {
      display: inline;
    }
    .rw-words-1 span:last-child {
          -webkit-animation: rotateend 8s 1 forwards 6s;
          -ms-animation: rotateend 8s 1 forwards 6s;
          animation: rotateend 8s 1 forwards 6s;
    }
    @keyframes rotateend {
          0% {
            opacity: 0;
          }
          2% {
            opacity: 0;
            -webkit-transform: translateY(-30px);
            transform: translateY(-30px);
          }
          5% {
            opacity: 1;
            -webkit-transform: translateY(0px);
            transform: translateY(0px);
          }
          17% {
            opacity: 1;
            -webkit-transform: translateY(0px);
            transform: translateY(0px);
          }
          100% {opacity: 1}
      }
    .rw-words-1 span {
      position: absolute;
      opacity: 0;
      -webkit-animation: rotateWord 7.5s linear;
      -ms-animation: rotateWord 7.5s linear;
      animation: rotateWord 7.5s linear;
      -webkit-animation-fill-mode: forwards;
    }
    
    .rw-words-1 span:nth-child(2) {
      -webkit-animation-delay: 1.5s;
      -ms-animation-delay: 1.5s;
      animation-delay: 1.5s;
      -webkit-animation-fill-mode: forwards;
    }
    
    .rw-words-1 span:nth-child(3) {
      -webkit-animation-delay: 3s;
      -ms-animation-delay: 3s;
      animation-delay: 3s;
      -webkit-animation-fill-mode: forwards;
    }
    
    .rw-words-1 span:nth-child(4) {
      -webkit-animation-delay: 4.5s;
      -ms-animation-delay: 4.5s;
      animation-delay: 4.5s;
      -webkit-animation-fill-mode: forwards;
    }
    
    .rw-words-1 span:nth-child(5) {
      -webkit-animation-delay: 6s;
      -ms-animation-delay: 6s;
      animation-delay: 6s;
      -webkit-animation-fill-mode: forwards;
    }
    
    .rw-words-1 span:nth-child(6) {
      -webkit-animation-delay: 7.5s;
      -ms-animation-delay: 7.5s;
      animation-delay: 7.5s;
      -webkit-animation-fill-mode: forwards;
      
      
      
    }
    
    @-webkit-keyframes rotateWord {
      0% {
        opacity: 0;
      }
      2% {
        opacity: 0;
        -webkit-transform: translateY(-30px);
      }
      5% {
        opacity: 1;
        -webkit-transform: translateY(0px);
      }
      17% {
        opacity: 1;
        -webkit-transform: translateY(0px);
      }
      20% {
        opacity: 0;
        -webkit-transform: translateY(30px);
      }
      80% {
        opacity: 0;
      }
      100% {
        opacity: 0;
      }
    }
    
    @-ms-keyframes rotateWord {
      0% {
        opacity: 0;
      }
      2% {
        opacity: 0;
        -ms-transform: translateY(-30px);
      }
      5% {
        opacity: 1;
        -ms-transform: translateY(0px);
      }
      17% {
        opacity: 1;
        -ms-transform: translateY(0px);
      }
      20% {
        opacity: 0;
        -ms-transform: translateY(30px);
      }
      80% {
        opacity: 0;
      }
      100% {
        opacity: 0;
      }
    }
    
    @keyframes rotateWord {
      0% {
        opacity: 0;
      }
      2% {
        opacity: 0;
        -webkit-transform: translateY(-30px);
        transform: translateY(-30px);
      }
      5% {
        opacity: 1;
        -webkit-transform: translateY(0px);
        transform: translateY(0px);
      }
      17% {
        opacity: 1;
        -webkit-transform: translateY(0px);
        transform: translateY(0px);
      }
      20% {
        opacity: 0;
        -webkit-transform: translateY(30px);
        transform: translateY(30px);
      }
      80% {
        opacity: 0;
      }
      100% {
        opacity: 0;
      }
    }
    
    @media screen and (max-width: 768px) {
      .rw-sentence {
        font-size: 18px;
      }
    }
    
    @media screen and (max-width: 320px) {
      .rw-sentence {
        font-size: 9px;
      }
    }
    <span class="h2 homeTitle rw-words rw-words-1">
      <span>First headline.</span>
      <span>Second headline.</span>
      <span>Third headline.</span>
      <span>Fourth headline.</span>
      <span>Fifth headline.</span>
      <span>My final headline...</span>
    </span>

    我添加了一些 CSS

    【讨论】:

      【解决方案2】:

      您可以像这样为容器中的last span 创建一个新的animation

      .rw-words-1 span:not(:last-child) {
        position: absolute;
        opacity: 0;
        -webkit-animation: rotateWord 7.5s linear;
        -ms-animation: rotateWord 7.5s linear;
        animation: rotateWord 7.5s linear;
      }
      
      .rw-words-1 span:last-child {
         position: absolute;
        -webkit-animation: showWord 8s linear;
        -ms-animation: showWord 8s linear;
        animation: showWord 8s linear;
      }
      

      keyframe 动画是这样的:

      @keyframes showWord {
        0% {
          opacity: 0;
          -webkit-transform: translateY(-30px);
          transform: translateY(-30px);
        }
        95% {
          opacity: 0;
          -webkit-transform: translateY(-30px);
          transform: translateY(-30px);
        }
        100% {
          opacity: 1;
          -webkit-transform: translateY(0px);
          transform: translateY(0px);
        }
      }
      

      请看下面的演示 - 我想你可以从这一点开始:

      .rw-words {
        display: inline;
      }
      
      .rw-words-1 span:not(:last-child) {
        position: absolute;
        opacity: 0;
        -webkit-animation: rotateWord 7.5s linear;
        -ms-animation: rotateWord 7.5s linear;
        animation: rotateWord 7.5s linear;
      }
      
      .rw-words-1 span:last-child {
        position: absolute;
        -webkit-animation: showWord 8s linear;
        -ms-animation: showWord 8s linear;
        animation: showWord 8s linear;
      }
      
      .rw-words-1 span:nth-child(2) {
        -webkit-animation-delay: 1.5s;
        -ms-animation-delay: 1.5s;
        animation-delay: 1.5s;
      }
      
      .rw-words-1 span:nth-child(3) {
        -webkit-animation-delay: 3s;
        -ms-animation-delay: 3s;
        animation-delay: 3s;
      }
      
      .rw-words-1 span:nth-child(4) {
        -webkit-animation-delay: 4.5s;
        -ms-animation-delay: 4.5s;
        animation-delay: 4.5s;
      }
      
      .rw-words-1 span:nth-child(5) {
        -webkit-animation-delay: 6s;
        -ms-animation-delay: 6s;
        animation-delay: 6s;
      }
      
      @-webkit-keyframes rotateWord {
        0% {
          opacity: 0;
        }
        2% {
          opacity: 0;
          -webkit-transform: translateY(-30px);
        }
        5% {
          opacity: 1;
          -webkit-transform: translateY(0px);
        }
        17% {
          opacity: 1;
          -webkit-transform: translateY(0px);
        }
        20% {
          opacity: 0;
          -webkit-transform: translateY(30px);
        }
        80% {
          opacity: 0;
        }
        100% {
          opacity: 0;
        }
      }
      
      @-ms-keyframes rotateWord {
        0% {
          opacity: 0;
        }
        2% {
          opacity: 0;
          -ms-transform: translateY(-30px);
        }
        5% {
          opacity: 1;
          -ms-transform: translateY(0px);
        }
        17% {
          opacity: 1;
          -ms-transform: translateY(0px);
        }
        20% {
          opacity: 0;
          -ms-transform: translateY(30px);
        }
        80% {
          opacity: 0;
        }
        100% {
          opacity: 0;
        }
      }
      
      @keyframes rotateWord {
        0% {
          opacity: 0;
        }
        2% {
          opacity: 0;
          -webkit-transform: translateY(-30px);
          transform: translateY(-30px);
        }
        5% {
          opacity: 1;
          -webkit-transform: translateY(0px);
          transform: translateY(0px);
        }
        17% {
          opacity: 1;
          -webkit-transform: translateY(0px);
          transform: translateY(0px);
        }
        20% {
          opacity: 0;
          -webkit-transform: translateY(30px);
          transform: translateY(30px);
        }
        80% {
          opacity: 0;
        }
        100% {
          opacity: 0;
        }
      }
      @keyframes showWord {
        0% {
          opacity: 0;
          -webkit-transform: translateY(-30px);
          transform: translateY(-30px);
        }
        95% {
          opacity: 0;
          -webkit-transform: translateY(-30px);
          transform: translateY(-30px);
        }
        100% {
          opacity: 1;
          -webkit-transform: translateY(0px);
          transform: translateY(0px);
        }
      }
      <span class="h2 homeTitle rw-words rw-words-1">
        <span>First headline.</span>
        <span>Second headline.</span>
        <span>Third headline.</span>
        <span>Fourth headline.</span>
        <span>Fifth headline.</span>
        <span>My final headline...</span>
      </span>

      【讨论】:

      • 这是一个不错的解决方案,但从前一个标题到最后一个标题的过渡并不像我标记为正确的答案那样无缝......
      • 是的,这很酷。我并没有考虑完善过渡,而是想向您展示道路,以便您可以继续前进。如果回答对你有帮助,也点赞,谢谢! :)
      猜你喜欢
      • 1970-01-01
      • 2011-03-14
      • 1970-01-01
      • 2018-10-17
      • 2019-11-09
      • 1970-01-01
      • 1970-01-01
      • 2013-12-14
      • 1970-01-01
      相关资源
      最近更新 更多