前提・実現したいこと
複数のgifアニメを任意のスクロール位置で再生スタート、
およびgifアニメの最初のフレームに戻るようにしたい。
再生ボタンではなく、自動かつループで実行したい。
発生している問題・エラーメッセージ
スクロールごとにjsが読み込まれるために、スクロールのたびにgifアニメが最初から再生されてしまう 放置で最後まで再生されるが、スクロールしても任意の位置までは最後まで再生したい。 切替り範囲(Pos01~Pos02)内で軽くスクロールしてもgifアニメ(全部で20秒ほどの)が0秒から再生されてしまいます。 10秒ほどgifが再生されている状態から、gifままの範囲内(Pos01~Pos02)でほんの少しスクロールしてしまうと続きが再生されず0秒位置から再生されてしまうのを解決したいのです。。 chromeの開発者コンソールで確認すると、jpg→gif→jpgという風にソース自体は質問したjsで切り替わります。
該当のソースコード
html
1<div class="animearea"> 2<p id="animation01"><img src="animeA.jpg" /></p> 3<p id="animation02"><img src="animeB.jpg" /></p> 4<p id="animation03"><img src="animeC.jpg" /></p>
js
1$(window).scroll(function (){ 2 var scroll = $(this).scrollTop(); 3 var Pos01 = 1000; 4 var Pos02 = 2000; 5 var Pos03 = 3000; 6 var Pos04 = 4000; 7 if (scroll > Pos01 && scroll < Pos02 ) { 8 $("#animation01 img").attr("src","animeA.gif" ); 9 } else { 10 $("#animation01 img").attr("src","animeA.jpg" ); 11 }; 12 if (scroll > Pos02 && scroll < Pos03 ) { 13 $("#animation02 img").attr("src","animeB.gif" ); 14 } else { 15 $("#animation02 img").attr("src","animeB.jpg" ); 16 }; 17 if (scroll > Pos03 && scroll < Pos04 ) { 18 $("#animation03 img").attr("src","animeC.gif" ); 19 } else { 20 $("#animation03 img").attr("src","animeC.jpg" ); 21 }; 22});
補足
animeA.jpg
animeB.jpg
animeC.jpg
がそれぞれのgifアニメ1フレーム目の静止画です。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/07/17 08:36
2019/07/17 09:39
2019/07/18 02:19