実現したいこと
APNGを複数の箇所に設置し、
その場所までスクロールする度にアニメーションするようにしたいです。
ループはせず、最後で止める想定です。
APNGは3種類あり(A、B、Cと仮定)、たとえばページ内にAが10箇所、B、Cが数カ所あるような形です。
発生している問題・分からないこと
https://kaiteki-chokin.com/scroll-gif/
上記サイトのコードを使い、
classとを変えて01、02、03…と増やして、切り替わる画像もABCで変えてみたのですが
上手く動作しない時があり、上手く実装できないか悩んでいます。
該当のソースコード
JavaScript
1$(window).scroll(function(){ 2 var top = $("#gif-anime").offset().top; 3 var position = top - $(window).height(); 4 5 if($(window).scrollTop() > position + 100){ //画像の上100pxが見えたらGIF画像に切替 6 if($('#gif-anime').hasClass('active')){ 7 } else { 8 $('#gif-anime').attr('src', './images/demo.gif'); 9 $('#gif-anime').addClass('active'); 10 } 11 } 12});
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
下記のようにanime01〜10と増やし、
b、cも制作し、個別に増やしていったのですが、
動く箇所と動かない箇所が出て来てしまいました。
JavaScript
1$(window).scroll(function(){ 2 var top = $(".anime01").offset().top; 3 var position = top - $(window).height(); 4 5 if($(window).scrollTop() > position + 10){ 6 if($('.anime01').hasClass('active')){ 7 } else { 8 $('.anime01').attr('src', 'img/img_test-a.png'); 9 $('.anime01').addClass('active'); 10 } 11 } 12}); 13 14$(window).scroll(function(){ 15 var top = $(".anime02").offset().top; 16 var position = top - $(window).height(); 17 18 if($(window).scrollTop() > position + 10){ 19 if($('.anime02').hasClass('active')){ 20 } else { 21 $('.anime02').attr('src', 'img/img_test-a.png'); 22 $('.anime02').addClass('active'); 23 } 24 } 25}); 26$(window).scroll(function(){ 27 var top = $(".anime-b").offset().top; 28 var position = top - $(window).height(); 29 30 if($(window).scrollTop() > position + 10){ 31 if($('.anime-b').hasClass('active')){ 32 } else { 33 $('.anime-b').attr('src', 'img/img_test-b.png'); 34 $('.anime-b').addClass('active'); 35 } 36 } 37}); 38$(window).scroll(function(){ 39 var top = $(".anime-c").offset().top; 40 var position = top - $(window).height(); 41 42 if($(window).scrollTop() > position + 10){ 43 if($('.anime-c').hasClass('active')){ 44 } else { 45 $('.anime-c').attr('src', 'img/img_test-c.png'); 46 $('.anime-c').addClass('active'); 47 } 48 } 49});
補足
実現したい図を作成しました。
ページ内に複数あるAPNGを、全てスクロールに合わせて画面に現れたタイミングで
アニメーションを開始させたいです。
回答1件
あなたの回答
tips
プレビュー