前提・実現したいこと
下にスクロールしていくと、次の要素が表示されるようにしたいです。
ドキュメント自身がスクロール対象です。
すると、「window.onscroll」を使えば簡単にできるらしいのですが・・・
発生している問題・エラーメッセージ
ググりながら色々と弄り回しているうちに、一度はできたのですが、後から順に表示したい要素が一度に出てきてしまうので、
ひとつずつ表示させたくて、更に弄り回しているうちに、どこをどうやったか分からなくなってしまいました。
最も中心に参照していたページは、このページで、「ドキュメント内でスクロールする場合」です。
一旦、コードを最初の方の状態に戻してみましたが、どこをどうやったか思い出せません。
アドバイスをください。
該当のソースコード
javascript
1 var targetElement; // 対象とする要素 2 3 window.onscroll = function(){ 4 var scrollTop = document.documentElement.scrollTop || document.body.scrollTop; 5 6 // ウィンドウのビューポートの下端の位置 7 var bottom = scrollTop + document.documentElement.clientHeight; 8 9 // 対象とする要素の上端の位置 10 var top = targetElement.offsetTop; 11 12 if( top < bottom ) 13 { 14 // 可視範囲に入ったときの処理 15 leftHtmlIndex += 1; 16 if(leftHtmlIndex < leftHtmlCount){ 17 displayEmbedcodeHtml(leftHtmlIndex); 18 }else{ 19 document.getElementById('scrollBottomMessage').innerHTML = '最後まで表示しました。'; 20 } 21 } 22 }
html
1<div id="scrollTopMessage"> 2</div> 3<div id='tweetBackList'> 4</div> 5<div id="scrollBottomMessage"> 6</div>
「leftHtmlIndex」は、初期状態で表示される要素で配列の「1」からスタートしてます。(コードの大半は関係ないと思いますので省略してます)
「displayEmbedcodeHtml」が要素を書き出していて配列の番号を増やすことによって次の要素を書き出しています。
要素は、「<div id='tweetBackList'>」の子要素として追加されていきます。
あとから現れる要素の高さは不揃いです。
試したこと
色々と弄り回してみたのですが、どこをどうやったら完成に近づいたのか分からなくなってしまいました。
すみません。_| ̄|○
補足情報(FW/ツールのバージョンなど)
サーバー:ロリポップ
ブラウザ:Firefox 91.0.2 (64 ビット)
クライアント:macOS Mojave 10.14.6
回答1件
あなたの回答
tips
プレビュー