質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

スクロール

スクロールとは、ディスプレイスクリーン上において連続的にコンテンツが滑っていくことを指します。

Q&A

解決済

1回答

2846閲覧

無限スクロールにロード中を表示する【Kaminari】

tomtom1

総合スコア168

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

スクロール

スクロールとは、ディスプレイスクリーン上において連続的にコンテンツが滑っていくことを指します。

0グッド

0クリップ

投稿2020/04/05 12:12

###実現したいこと
Kaminariを使って、無限スクロールを実装しました。
最下部に辿りつくと、自動で次のページがロードされるのですが、ロードされるまでの間に、「ロード中..」のgifを表示させたいです。
無限スクロールは以下のサイトを参考に作りました。
https://qiita.com/s_yasunaga/items/ab17424912ee90f853d7
イメージ説明
現状、最下部に「Loading...」(設定した覚えはないためデフォルトでしょうか?)との表示は出現します。

###コード
application.html.erb

view

1<script src="https://cdnjs.cloudflare.com/ajax/libs/jscroll/2.4.1/jquery.jscroll.min.js"></script>

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$('#items').append("<%= escape_javascript(render 'items', object: @posts) %>") 2$("#more_link").replaceWith("<%= escape_javascript(link_to_next_page(@posts, 'もっと見る',class: 'items_btn', remote: true, id: 'more_link')) %>"); 3

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 }); 10 } 11 }); 12})

###試したこと
https://ruby-rails.hatenadiary.com/entry/20141115/1416021886
のサイトを参考にもし、下記のように利用していたので、試しましたが効果はありませんでした。

loading: { img: "http://www.mytreedb.com/uploads/mytreedb/loader/ajax_loader_blue_48.gif", msgText: "ロード中..." },

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 loading: { 8 img: "http://www.mytreedb.com/uploads/mytreedb/loader/ajax_loader_blue_48.gif", 9 msgText: "ロード中..." 10 }, #こちらのloadingを追加 11 contentSelector: '.skill-list', 12 nextSelector: 'span.next:last a', 13 }); 14 } 15 }); 16})

お分かりの方、ぜひご教示お願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

ぼくのように英語が苦手な人の実装作業の流れ


①Qiitaなどの記事をみて実装する
↓ だめな場合
②他の記事をみて実装する
↓ だめな場合
③公式を見る。(だいたい解決する)
↓ だめな場合
④StackOverflowを見る。


①〜②ではバージョンアップで実装方法が変わっていたりするためうまくいかないことがあります。
また③の公式を見るときはQ&A、Githubならissueまで見るとより良いかと思います。

前置きが長くなりましたが下記でいかがでしょうか?
jscroll公式:Customizing

投稿2020/04/06 02:47

no1knows

総合スコア3365

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tomtom1

2020/04/06 14:06

解決しました!ありがとうございます! 公式を拝見し、それ以降に答えを探したら行き着きました! js部分が以下のような記述で、解決しましたが、位置指定がうまく行きません。アドバイスございましたらぜひお願いします。 https://teratail.com/questions/251840?modal=q-comp
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問