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

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

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

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

1回答

6275閲覧

画面の一部にだけajaxで処理中のみローディング表示させるには?

sakura-shi

総合スコア93

Ajax

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2018/11/29 02:37

編集2018/11/29 03:04

#やりたいこと
・ある画面のロード
・同じ画面で選択したラジオボタンの値によって
この2つのタイミングで、画面の一部にのみローディングアイコンを表示させたいです。

検索してみると、画面全体のローディングはたくさんヒットしたのですが、部分的(画面の一部のみ)にローディングアイコンを表示させる方法は見つかりませんでした。

どのようにしたら画面の一部のみローディング表示できますか?

HTML

1<!-- HTML内 --> 2<div id="result" ></div> 3<div class="loading"> 4<!-- <div class="loading_icon"></div> --> 5</div> 6<!-- 他の画像やフォームなど--> 7<script> 8$(function(){ 9 $(document).ready( function(){ 10 var date = $("#date").val(); 11 $.ajax({ 12 url: "/example/getlist.php", 13 method: "POST", 14 data: { date: date}, 15 dataType: 'json', 16 }).done(function(data) { 17 $("#result").html(data.msg); 18 }).fail(function(jqXHR, textStatus, errorThrown) { 19 console.log(textStatus); 20 }); 21 }); 22

#試したこと

css

1.is-hide{ 2 display:none; 3 } 4 .loading{ 5 position:fixed; 6 top:0; 7 right:0; 8 bottom:0; 9 left:0; 10 background:#f2f2f2; 11} 12.loading::before{ 13 content:""; 14 display:block; 15 position:fixed; 16 left:50%; 17 top:50%; 18 width:50px; 19 height:50px; 20 border-radius:5px; 21 margin-top:-15px; 22 margin-left:-15px; 23 background:white; 24 } 25.loading::after{ 26 content:""; 27 display:block; 28 position:fixed; 29 left:50%; 30 top:50%; 31 width:32px; 32 height:32px; 33 border-radius:20px; 34 margin-top:-10px; 35 margin-left:-10px; 36 border:4px solid #60ABB9; 37 border-right:4px solid white; 38 animation: rotate 1s infinite linear; 39 }

これだと
画面全体がローディングアイコンになってしまう
HTMLは表示させ、divの部分にのみアイコンを出力したい

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

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

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

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

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

guest

回答1

0

ベストアンサー

画面の一部のみローディング表示

ローディング表示に一部も全部もないと思いますが・・・
例示のソースでいうと

HTML

1<div class="loading"></div>

にローディングのアイコンもしくはテキストを表示し、
ajaxがdoneされたときに消せば良いでしょう

命題にラジオボタンについては該当する部分が見当たらないのでなんとも言えません

sample

  • html

HTML

1<script> 2$(function(){ 3 $(document).ready( function(){ 4 var c=0; 5 var timerId=setInterval(function(){c=c>=3?0:c+1;$('.loading').html("loading"+".".repeat(c))},500); 6 $.ajax({ 7 url: "hoge.php", 8 method: "POST", 9 }).done(function(data) { 10 $("#result").html(data); 11 clearInterval(timerId); 12 $('.loading').html(""); 13 }).fail(function(xhr, err){ 14 console.log(textStatus); 15 }); 16 }); 17}); 18</script> 19<div id="result" ></div> 20<div class="loading"></div>
  • hoge.php

PHP

1<?php 2sleep(5); 3print "load complete";

投稿2018/11/29 03:00

編集2018/11/29 03:22
yambejp

総合スコア114784

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

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

sakura-shi

2018/11/29 03:05

ためしたCSSを掲載しました これだと、画面全体がローディングになってしまうのです。 これが問題です HTMLの一部分にのみローディングアイコンを表示するようにしたいです
yambejp

2018/11/29 03:24

sampleつけておきました
sakura-shi

2018/11/29 07:40

ありがとうございました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問