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

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

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

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

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

Q&A

解決済

1回答

816閲覧

CSS/JS animationでh2の文章を表示させたい

Nogeira

総合スコア9

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

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

0グッド

0クリップ

投稿2020/02/25 05:02

前提・実現したいこと

CSSのanimationとkeyframesを使い、
JSのスクロールイベントで以下のh2の文章を、
スライドイン表示後にマスク部分がスライドアウトするアニメで表示させたいのですが、
h2がopacity:0のままで上手く表示されません。

発生している問題・エラーメッセージ

chromeの検証ツールでの確認ですが、 エラーメッセージはでておりません。

該当のソースコード

HTML

1<head> 2<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script> 3</head> 4 5<section class="moji"> 6 <h2 class="moji-ani">これを表示させたい</h2> 7</section>

css

1 .moji { 2 max-width: 70vw; 3 margin: 300px auto; 4 text-align: center; 5 overflow: hidden; 6 } 7 8 .moji h2 { 9 font-size: 3.5vw; 10 opacity: 0; 11 } 12 13 @keyframes moji-anime { 14 from { 15 transform: translateX(-100%); 16 } 17 18 to { 19 transform: translateX(0); 20 } 21 } 22 23 @keyframes moji-mask { 24 from { 25 transform: translateX(0); 26 } 27 28 to { 29 transform: translateX(100%); 30 } 31 } 32 33 .moji-start { 34 animation-name: moji-anime; 35 animation-duration: .5s; 36 animation-fill-mode: forwards; 37 animation-timing-function: cubic-bezier(.42, 0, 1, 1); 38 position: relative; 39 opacity: 1 !important; 40 } 41 42 .moji-start::before { 43 animation-name: moji-mask; 44 animation-duration: .5s; 45 animation-delay: .5s; 46 animation-fill-mode: forwards; 47 animation-timing-function: cubic-bezier(.42, 0, 1, 1); 48 position: absolute; 49 content: ''; 50 top: 0; 51 left: 0; 52 z-index: 1; 53 width: 100%; 54 height: 100%; 55 background: #666; 56 }

JAVASCRIPT

1 2 $(window).on('scroll', function() { 3 4 var elem = $('.moji h2'); 5 6 elem.each(function() { 7 8 var mojistart = 'moji-start'; 9 var elemOffset = $(this).offset().top; 10 var scrollPos = $(window).scrollTop() + (window.innerHeight/2); 11 if(scrollPos > elemOffset) { 12 $(this).addClass(mojistart); 13 } 14 }); 15 });

試したこと

・スペルミスのチェック。

補足情報(FW/ツールのバージョンなど)

OS:win10 64bit
ブラウザ: Chrome

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

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

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

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

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

miyabi_takatsuk

2020/02/25 05:24

2点ほど。 ・if(scrollPos > elemOffset) { の中は通っているか ・moji-startクラスを最初からつけていた場合にアニメーションするか この二点をまずご確認ください。
Nogeira

2020/02/25 06:01

miyabi_takatsuk様 御回答ありがとうございます。 依頼を参考にしてみた所、無事解決しました。 仰る確認事項が実に的確で、今回の原因は ・if(scrollPos > elemOffset) { の中は通っているか に該当しておりました。 手順的に 1.moji-startクラスの単体テスト 2.正常に思った通りのアニメーションで動作している 3.JSファイルの条件を確認 4.コンテナ部分のmarginの上下を広げて確認 5.スクロールで動作(解決) 今後もデバッグに使える手順だと思います、大変参考になりました。 回答にコメント頂ければベストアンサーをつけさせて頂きます。
miyabi_takatsuk

2020/02/25 06:13

いえいえ、解決されて何よりです。 ここは質問修正依頼コメント蘭なので、回答ではございません。 解決されたのであれば、自己解決の投稿をし、質問を閉じられるといいかと思います。
Lhankor_Mhy

2020/02/25 06:19

ご提示のコードを当方で試してみたところ、問題なく動作しました。 つまり、問題が再現しません。 https://jsfiddle.net/Lhankor_Mhy/0h8r3beu/ ↑ こちらのコードはNogeiraさんの環境で問題が再現しますか? 再現するのであれば、問題は環境にあるかもしれません。 再現しないのであれば、問題が再現するコードをご提示ください。
Nogeira

2020/02/25 06:27

Lhankor_Mhy様 わざわざ動作確認までして頂き、ありがとうございます。 今回の原因は、コンテナのbottom部分のmarginが十分に取られていなかったため、 発火部分が通過できていなかったようです。
guest

回答1

0

自己解決

質問、修正依頼を参考に原因を解決できました。

解決へのプロセスは質問依頼の所に記述しておりますので、
同じ問題に当たった方は是非ご参考にして頂ければと思います。

投稿2020/02/25 06:30

Nogeira

総合スコア9

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問