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

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

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

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

Ruby on Rails

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

1回答

1908閲覧

登録が終わるまでローディングを表示したい

pecchan

総合スコア583

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

Ruby on Rails

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2021/06/10 10:28

rails6.1.0

初心者につき的外れな質問してるかもしれません。

登録が終わるまでの間ローディングを表示しようと思い、CSSでくるくる回る画像を作成しました。

これをrails側にどう組み込んだら良いのか分かりません。
点と点が繋がらない状態です。。。

登録画面を表示した時は、ローディング画像はdisplay:noneで非表示にしてます。
これを以下の流れのように表示したいです。
1.登録ボタンクリック
2.入力チェック
3.POST送信でローディングを表示
4.POSTが終わればまたローディング非表示(登録完了後は別ページへ遷移するから関係ない?)

すみませんが考え方でも良いので教えていただけると幸いです。
宜しくお願い致します。

登録画面

ruby

1 2 <div class="user-edit-update-btn"> 3 <%= f.submit "更新", class: "btn btn-primary btn-block", data: { disable_with: t("sending") } %> 4 </div> 5 6 <!-- 以下を貼り付けるとloadingが表示されるので最初は非表示にしておく --> 7 <div class="loading" style="display:none;"> 8 <h1>upload...</h1> 9 <svg class="loading-svg" x="0px" y="0px" viewBox="0 0 150 150"> 10 <circle class="loading-svg-circle" cx="75" cy="75" r="60"/> 11 </svg> 12 </div> 13

現在は、登録時にjQueryで入力チェックを行ってます。
入力チェック

javascript

1$(document).on('turbolinks:load', function(){ 2 3 4 $('.user-edit-form').submit(function(e) { 5 6 // ここで色々と入力チェック 7 // 省略 8 }); 9 10 11});

ローディング

css

1 2.loading { 3 width: 150px; 4 position: fixed; 5 z-index: 1; 6 top: 50%; 7 left: 50%; 8 transform: translate(-50%, -50%); 9 -webkit-transform: translate(-50%, -50%); 10 -ms-transform: translate(-50%, -50%); 11} 12 13.loading > h1 { 14 text-align: center; 15 font-size: 2.5em; 16 margin-bottom: 1em; 17 font-weight: 300; 18 color: #f49420; 19} 20 21.loading-svg { 22 width: 150px; 23 animation: loading 3s linear infinite; 24} 25 26.loading-svg .loading-svg-circle { 27 stroke-dashoffset: 0; 28 stroke-dasharray: 300; 29 stroke-width: 10; 30 stroke-miterlimit: 10; 31 stroke-linecap: round; 32 animation: loading-circle 2s linear infinite; 33 stroke: #f49420; 34 fill: transparent; 35} 36 37@keyframes loading { 38 0% { 39 transform: rotate(0); 40 } 41 100% { 42 transform: rotate(360deg); 43 } 44} 45 46@keyframes loading-circle { 47 0% { 48 stroke-dashoffset: 0; 49 } 50 100% { 51 stroke-dashoffset: -600; 52 } 53}

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

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

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

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

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

guest

回答1

0

自己解決

入力チェックを行っているjQueryの最後に
$('.loading').show();
を追加するだけでした

お騒がせしました。

投稿2021/06/10 11:00

pecchan

総合スコア583

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問