画面をスクロールしてフェードインしているのですが、
現状は画面の下の方で4分の1程度見えてくるとフェードイン始めてしまいます。
これを画面の中央(2分の1)くらいの高さにきたらフェードインするようにしたいのですが、
方法はありますでしょうか?
html
1<head> 2<script src="js/jquery-3.1.1.min.js"></script> 3</head> 4<body> 5<div class="scrollanime"> 6 <img src="img/n01.png" alt="画像"> 7</div> 8</body> 9
javascript
1$(function () { 2 $(window).scroll(function () { 3 const wHeight = $(window).height(); 4 const scrollAmount = $(window).scrollTop(); 5 $('.scrollanime').each(function () { 6 const targetPosition = $(this).offset().top; 7 if(scrollAmount > targetPosition - wHeight + 100) { 8 $(this).addClass("fadeInDown"); 9 } 10 }); 11 }); 12});
css
1.scrollanime { 2 opacity: 0; 3 transition-delay: 600ms; 4} 5.fadeInDown { 6 animation-name: fadeInDown; 7 animation-duration: 2s; 8 animation-fill-mode: forwards; 9 transition-delay: 2s; 10} 11@keyframes fadeInDown { 12 0% { 13 opacity: 0; 14 } 15 100% { 16 opacity: 1; 17 transform: translate(0); 18 } 19}
試したこと1 wHeight + 数値の確認
javascript
1if(scrollAmount > targetPosition - wHeight + 100) {
試したこと2 CSSで開始時間を遅らせる
css
1transition-delay: 2s;
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/04/24 02:22