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

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

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

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

jQuery

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

Q&A

解決済

1回答

1408閲覧

スクロールをしたら要素を出現させたいが、出現しない

mupo

総合スコア37

HTML5

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

jQuery

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

0グッド

0クリップ

投稿2021/11/08 06:15

前提・実現したいこと

画面をスクロールすると、右から要素を出現させたいと思っています。
(該当ソースコードの背景色グレーの部分です)

動きの参考にしたのは以下のサイトですが、記述通りに書いたはずが動いてくれません。
https://coco-factory.jp/ugokuweb/jscss/

該当のソースコード

HTML

1<div class="height"></div> 2 3<div class="box"> 4<div class="box__bg__outer"><div class="box__bg__inner fadeRightTrigger"></div></div> 5<h3>タイトルテキスト</h3> 6<p class="image"></p> 7<p>テキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキスト</p> 8</div> 9<script src="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>

css

1body { 2 overflow-x: hidden; 3} 4 5.height { 6 min-height: 1500px; 7} 8 9.box { 10 position:relative; 11 margin: 0 auto; 12 max-width: 600px; 13 z-index: 1; 14} 15 16.box__bg__outer { 17 position:absolute; 18 top:0; 19 right:0; 20 max-width: 400px; 21 background: #ccc; 22 margin-left: 120px; 23 border-radius: 30px 0px 0px 30px; 24} 25 26.box__bg__inner { 27 width:calc(100vw - 120px); 28 height: 399px; 29 background: #ccc; 30 border-radius: 30px 0px 0px 30px; 31 z-index:0; 32} 33 34.box p.image { 35 display: inline-block; 36 position: relative; 37 min-width: 400px; 38 min-height:100px; 39 background: #000; 40 padding: 0; 41 margin: 0; 42 z-index: 1; 43} 44 45.box h3 { 46 position:relative; 47 max-width: 315px; 48 font-size: 18px; 49 letter-spacing: 0.54px; 50 line-height: 30px; 51 padding-top: 30px; 52 margin: 0 auto 22px auto; 53} 54 55.box p { 56 position:relative; 57 max-width: 315px; 58 margin: 22px auto 18px auto; 59 font-size: 14px; 60 font-weight: 300; 61 line-height: 22px; 62}

Jquery

1function fadeAnime(){ 2 3 $('.fadeRightTrigger').each(function(){ //fadeRightTriggerというクラス名が 4 var elemPos = $(this).offset().top-50; 5 var scroll = $(window).scrollTop(); 6 var windowHeight = $(window).height(); 7 if (scroll >= elemPos - windowHeight){ 8 $(this).addClass('fadeRight');// 画面内に入ったらfadeRightというクラス名を追記 9 }else{ 10 $(this).removeClass('fadeRight');// 画面外に出たらfadeRightというクラス名を外す 11 } 12 }); 13 } 14 15// 画面をスクロールをしたら動かしたい場合の記述 16 $(window).scroll(function (){ 17 fadeAnime();/* アニメーション用の関数を呼ぶ*/ 18 });// ここまで画面をスクロールをしたら動かしたい場合の記述

試したこと

現在は「.box__bg__inner」のクラス中に「.fadeRightTrigger」をつけていますが、
記述箇所に問題があるのかと思い、「.box__bg__outer」や「.box」に記述を移動してみましたが動かないままです。
動かしたい要素に「.fadeRightTrigger」を付属するだけで動くはずなので、なにか元々のコードの書き方に問題があるのでしょうか…

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

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

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

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

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

guest

回答1

0

ベストアンサー

動かしたい要素に「.fadeRightTrigger」を付属するだけで動くはずなので、

この認識が間違っています。
提示のjQueryで.fadeRightTriggerfadeRightクラスを付加/削除するのは成功しています。

CSSでfadeRightクラスにアニメーションを設定する必要があります。

どのような動きにしたいのか不明ですが、
右から移動しながらフェイドインするということなら、
CSSに下記の設定を追加したらどうでしょう。

css

1.fadeRight{ 2 animation-name:fadeRightAnime; 3 animation-duration:0.5s; 4 animation-fill-mode:forwards; 5 opacity:0; 6} 7 8@keyframes fadeRightAnime{ 9 from { 10 opacity: 0; 11 transform: translateX(200px); 12 } 13 14 to { 15 opacity: 1; 16 transform: translateX(0); 17 } 18} 19 20/* スクロールをしたら出現する要素にはじめに透過0を指定 */ 21.fadeRightTrigger{ 22 transform: translateX(100px); 23 opacity: 0; 24}

css

1.box__bg__outer { 2 position:absolute; 3 top:0; 4 right:0; 5 max-width: 400px; 6/* background: #ccc; この背景色は削除しておく */ 7 margin-left: 120px; 8 border-radius: 30px 0px 0px 30px; 9}

投稿2021/11/08 07:03

hatena19

総合スコア34075

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

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

mupo

2021/11/09 02:37

そもそもの認識違いとのご指摘ありがとうございます。思い込んでしまっており、気付くことができませんでした…無事にうまく動かすことができました!感謝です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問