質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

1回答

432閲覧

HTML 1文字ずつ左から右へふわっと出現をやりたい

makiharajin_74

総合スコア17

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2024/04/04 02:11

実現したいこと

””自分らしい、その瞬間を。””の部分を1文字ずつ左から右へふわっと出現させたい。

→→→→→→→→→→→
自分らしい、その瞬間を。

発生している問題・分からないこと

サンプルコードを真似して書いてみたが動かない。
--失敗--
イメージ説明

サンプルコード
https://coco-factory.jp/ugokuweb/move02/8-11/

該当のソースコード

HTML

1<div class="top_header_nav"> 2 <!-- tagline --> 3 <div class="top-header-nav-area_tagline"> 4 <p class="jpn eachTextAnime">自分らしい、その瞬間を。</p> 5 <p class="eng">Own your time.</p> 6 </div> 7</div>

CSS

1.top_header_nav{ 2 position: relative; 3 display: flex; 4 align-items: center; 5 height: 230px; 6 padding-left: 7.2%; 7} 8/* tagline */ 9.top-header-nav-area_tagline { 10 padding-top: 2px; 11 color: #666; 12 letter-spacing: 0.1em; 13} 14.top-header-nav-area_tagline .jpn { 15 display: block; 16 margin-bottom: 6px; 17 font-size: 1.7rem; 18 line-height: 1.4; 19} 20.eachTextAnime span{opacity: 0;} 21.eachTextAnime.appeartext span{ animation:text_anime_on 1s ease-out forwards; } 22@keyframes text_anime_on { 23 0% {opacity:0;} 24 100% {opacity:1;} 25}

Jquery

1$(function() { 2// eachTextAnimeにappeartextというクラス名を付ける定義 3 function EachTextAnimeControl() { 4 $('.eachTextAnime').each(function () { 5 var elemPos = $(this).offset().top - 50; 6 var scroll = $(window).scrollTop(); 7 var windowHeight = $(window).height(); 8 if (scroll >= elemPos - windowHeight) { 9 $(this).addClass("appeartext"); 10 } else { 11 $(this).removeClass("appeartext"); 12 } 13 }); 14 } 15 // 画面が読み込まれたらすぐに動かしたい場合の記述 16 $(window).on('load', function () { 17 //spanタグを追加する 18 var element = $(".eachTextAnime"); 19 element.each(function () { 20 var text = $(this).text(); 21 var textbox = ""; 22 text.split('').forEach(function (t, i) { 23 if (t !== " ") { 24 if (i < 10) { 25 textbox += '<span style="animation-delay:.' + i + 's;">' + t + '</span>'; 26 } else { 27 var n = i / 10; 28 textbox += '<span style="animation-delay:' + n + 's;">' + t + '</span>'; 29 } 30 } else { 31 textbox += t; 32 } 33 }); 34 $(this).html(textbox); 35 }); 36 EachTextAnimeControl();/* アニメーション用の関数を呼ぶ*/ 37 });// ここまで画面が読み込まれたらすぐに動かしたい場合の記述 38});

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

サンプルコードをそのまま真似して書いたが、反応しない状態

補足

特になし

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

makiharajin_74

2024/04/04 03:09

ありがとうございます。 同じ質問をしてしまいました。すみません。
guest

回答1

0

ベストアンサー

こうするとどうでしょうか?

js

1// $(function() { 消す 2// eachTextAnimeにappeartextというクラス名を付ける定義 3 function EachTextAnimeControl() { 4 $('.eachTextAnime').each(function () { 5 var elemPos = $(this).offset().top - 50; 6 var scroll = $(window).scrollTop(); 7 var windowHeight = $(window).height(); 8 if (scroll >= elemPos - windowHeight) { 9 $(this).addClass("appeartext"); 10 } else { 11 $(this).removeClass("appeartext"); 12 } 13 }); 14 } 15 // 画面が読み込まれたらすぐに動かしたい場合の記述 16 $(window).on('load', function () { 17 //spanタグを追加する 18 var element = $(".eachTextAnime"); 19 element.each(function () { 20 var text = $(this).text(); 21 var textbox = ""; 22 text.split('').forEach(function (t, i) { 23 if (t !== " ") { 24 if (i < 10) { 25 textbox += '<span style="animation-delay:.' + i + 's;">' + t + '</span>'; 26 } else { 27 var n = i / 10; 28 textbox += '<span style="animation-delay:' + n + 's;">' + t + '</span>'; 29 } 30 } else { 31 textbox += t; 32 } 33 }); 34 $(this).html(textbox); 35 }); 36 EachTextAnimeControl();/* アニメーション用の関数を呼ぶ*/ 37 });// ここまで画面が読み込まれたらすぐに動かしたい場合の記述 38// }); 消す

投稿2024/04/04 02:20

Lhankor_Mhy

総合スコア37409

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

makiharajin_74

2024/04/04 03:10

回答ありがとうございます。 試したところ問題が解決しました! ベストアンサーに選ばせていただきました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問