【jQuery】文字が1文字ずつ出るアニメーション作成方法

この記事は約2分で読めます。
広告

タイトルとか、サイトのキャッチをアニメーションで出す時、
一文字ずつフワッフワッと出てくると「おっ!」ってなるじゃない。
そんな「おっ!」を聞きたくて一文字ずつ出るテキストを作成してみたいと思います。
まずはdemoでどんな感じのアニメか確認してね!
(コメダでブログ更新していたので、たしかコメダのシロノワール?のテキストです)

DEMO

とろ~りなめらかソフトクリームとほんのりココア香る、あったかバウムクーヘン。

もう一度最初からアニメーション

HTML

<p class="demoTxt">とろ~りなめらかソフトクリームとほんのりココア香る、あったかバウムクーヘン。</p>

CSS

.demoTxt {

  display: block;

  opacity:0;

  font-size: 24px;

  font-weight: bold;

  text-align: center;
}
.demoTxt span {

  opacity: 0;

  -webkit-transition: .6s ease-in-out;

  transition: .6s ease-in-out;
}

jQuery

// アニメーションさせたいクラス
var container = $(".demoTxt");
// アニメーションスピード
var speed = 80;

// テキストの間にスペースを入れます
var content = container.html();
var text = $.trim(content);
var newHtml = "";

// スペースで区切ったテキストを、テキストの数だけspanで囲む
text.split("").forEach(function(v) {

 newHtml += '<span>' + v + '</span>';
});

// spanで囲んだテキスト群をHTMLに戻す
container.html(newHtml);

// 1文字ずつ表示
var txtNum = 0;
container.css({opacity: 1});
setInterval(function() {
  container.find('span').eq(txtNum).css({opacity: 1});

 txtNum++
}, speed);
エンデ・バタローをフォローする
javascriptjQuery

埼玉県北本市に住み始めて2年目。

前は東京都の京王線沿線に。
その前は神戸の三宮に。
その前は名古屋の八事霊園の近くに住んでいました。

ある年の冬、車で島根県へ旅行に出かけました。
同県の山中にある寒村をゆるゆると走っていると地面が凍結しており
車ごと川に滑り落ちそうになった経験を持つ30代(男)です。

フロントエンドを始めて9年目になります。
最近は、ずっとwordpressをいじっており
エディタはVSCodeに乗り換え、日々の業務でイラレとフォトショ、HTMLとCSSとjavascriptとphpを使用してます。
仕事をしていて、検索する手間を省くためフロント技術ブログを書いています。

エンデ・バタローをフォローする
広告
初めてのブログ

コメント

  1. shin2 より:

    自分が欲しいコードに巡り合いました。有難うございます。
    他のは、Textillate.jsもそうですが、イベントでは2回目はアニメが起きません。
    こちらは
    content は決め打ちテキストで、var newHtml = “”;でボタン実行で何回もアニメが実行されます。こうゆうのが欲しかったでした。とりとめもなく嬉しくて書き込んでしまいました。ではでは これで

タイトルとURLをコピーしました