###実現したいこと
ロード中の表示場所を指定したいです。
以下のコードのように、loadingHtmlにてクラスloadingのdivで囲いました。
そして、cssにてloadingに対し、位置をしてしているのですが、反映されません。
現在、ページの最下部に表示されてしまうのですが、最下部から少し上の中央に表示させたいです。
そもそも、loadingHtmlにてあるクラスをもったdivで囲わせ、そのクラスにcssで指定する方法が誤まっているでしょうか?
###コード
js
1$(document).on('turbolinks:load', function() { 2 $(window).on('scroll', function() { 3 scrollHeight = $(document).height(); 4 scrollPosition = $(window).height() + $(window).scrollTop(); 5 if ( (scrollHeight - scrollPosition) / scrollHeight <= 0.05) { 6 $('.jscroll').jscroll({ 7 contentSelector: '.skill-list', 8 nextSelector: 'span.next:last a', 9 loadingHtml: '<div class="loading"><i class="fa fa-spinner">Now Loading...</i></div>', 10 top:200 11 }); 12 } 13 }); 14})
css
1.loading { 2 position: absolute; 3 top: 50%; 4 left: 50%; 5 width: 100px; 6 height: 100px; 7 margin: -50px 0 0 -50px; 8 line-height: 100px; 9 font-size: 56px; 10 color: #fff; 11 text-align: center; 12 background-color: rgba(#000,.7); 13 @include border-radius(10px); 14} 15.loading i{ 16 font-size: 56px; 17} 18
index.html.erb
view
1<div class="main posts-index"> 2 <div class="container"> 3 <div id="items"> 4 <%= render 'items' %> 5 </div> 6 </div> 7</div>
_items.html.erb
view
1<ul class="skill-list jscroll"> 2 <% @posts.each do |post| %> 3 <p><%= post.title %></p> 4 <% end %> 5 <%= paginate @posts %> 6</ul>
###追記
js
1$(document).on('turbolinks:load', function() { 2 $(window).on('scroll', function() { 3 scrollHeight = $(document).height(); 4 scrollPosition = $(window).height() + $(window).scrollTop(); 5 if ( (scrollHeight - scrollPosition) / scrollHeight <= 0.05) { 6 $('.jscroll').jscroll({ 7 autoTrigger: true, 8 loadingHtml: '<div class="loading"><i class="fa fa-spinner">Now Loading...</i></div>', 9 padding: 30, 10 contentSelector: '.skill-list', 11 nextSelector: 'span.next:last a', 12 }); 13 } 14 }); 15})
###追記2
https://qiita.com/yokoto/items/c4490aed75c75dbf687a
上記サイトを参考に再度試しました。
しかし、<p class="infinite-scroll-request">読み込み中...</p>が最下部に表示されるのみで、自動スクロールの反応は得られませんでした。
js
1$(document).on("turbolinks:load", function() { 2 if ($("nav.pagination a[rel=next]").length){ 3 $(".jscroll").infiniteScroll({ 4 path: "nav.pagination a[rel=next]", 5 append: ".jscroll ul", 6 elementScroll: true, 7 history: true, 8 prefill: false, 9 status: ".page-load-status", 10 hideNav: ".pagination" 11 })
view
1<ul class="skill-list jscroll"> 2 <% @posts.each do |post| %> 3 <p><%= post.title %></p> 4 <% end %> 5 <%= paginate @posts %> 6</ul> 7<div class="page-load-status"> 8 <p class="infinite-scroll-request">読み込み中...</p> 9</div>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/06 15:13
2020/04/06 15:25
2020/04/06 15:53
2020/04/06 15:55
2020/04/06 22:28 編集
退会済みユーザー
2020/04/06 22:48
退会済みユーザー
2020/04/06 22:54
2020/04/07 09:24 編集
2020/04/07 11:58
2020/04/07 12:42