【CSS】@keyframesを使用してテキストを一文字ずつバラバラにスライドしながらフェードインさせる方法のデモページ

※デベロッパーツール等でソースコードをご確認ください(Please check using Developer tools)

マイナビAGENT

DummyText01

スポンサーリンク

マイナビAGENT

JavaScript

$(function(){
  $('.text').children().addBack().contents().each(function() {
    $(this).replaceWith($(this).text().replace(/(\S)/g, '<span class="text-move"<$&</span<'));
  });
  $(".text").addClass("active");
});

HTML

<div class="wrap">
  <p class="text">DummyText01</p>
</div>

CSS

.wrap {
  width: 768px;
  margin: 100px auto 0;
  text-align: center;
}

.text {
  opacity: 0;
  font-size: 50px;
}

.text-move {
  display: inline-block;
  animation: move .8s ease both;
}

.text.active {
  opacity: 1;
}

@keyframes move {
  from {
    opacity: 0;
    transform: translate3d(-20px, 0, 0);
  }
  to {
    opacity: 1;
    transform: none;
  }
}

.text-move:nth-child(1) {
  animation-delay: 0;
}
.text-move:nth-child(2) {
  animation-delay: .2s;
}
.text-move:nth-child(3) {
  animation-delay: .4s;
}
.text-move:nth-child(4) {
  animation-delay: .3s;
}
.text-move:nth-child(5) {
  animation-delay: .5s;
}
.text-move:nth-child(6) {
  animation-delay: .4s;
}
.text-move:nth-child(7) {
  animation-delay: .5s;
}
.text-move:nth-child(8) {
  animation-delay: .4s;
}
.text-move:nth-child(9) {
  animation-delay: .5s;
}
.text-move:nth-child(10) {
  animation-delay: .2s;
}
.text-move:nth-child(11) {
  animation-delay: .4s;
}
.text-move:nth-child(12) {
  animation-delay: .5s;
}

@media screen and (max-width:640px){
  .wrap {
    width: 100%;
  }
}