首記の件、教えて頂きたくお願い致します。
流れとして、下記ソースコードのWebページを開いたら、
・ローディング画面が表示される
・ローディング画面が徐々に消えてフォームが表示される
※ローディング画面が消えてフォームが表示される時に、フォームが下から上にフェードインしながら表示される様にしたい ←ここで悩んでます。
CSSで#formを取得して、
opacity: 0;
transform: translateY(20px);
で要素を透明にし、要素を下にさげる
JavascriptのclassListでクラスを追加して、そのクラスにCSSを記述する
JavaScript;
window onload = function() {
const fadein = document.getElementById('form');
fadein.classList.add('fade_in');
CSS;
.fade_in {
opacity: 1;
transform: translateY(0);
で要素を不透明にし、要素を上にあげる
こうすることでフォームのid(form)からクラス(fade_in)に切り替わる事で、CSSの値が(fade_in)のCSSへと変化しフェードインを実現させようとしたのですがうまくできません。
(ローディング画面はうまくできたのですが、やり方が同じなのに出来ません)
宜しくお願い致します。
ソースコード;
★HTML;
<body>
<div id="GIF"></div>
<form action="top.html" method="POST" id="form">
<div class="question-form">
<div class="areas">
<div class="columns">会社名・団体名</div>
<div class="rows"><input type="text" name="test" class="input-text"><br>(例:**株式会社、**大学**学部**学科)</div>
</div>
<div class="areas">
<div class="columns">氏名(漢字)<span class="red">(必須)</span></div>
<div class="rows"><input type="text" name="sample" class="input-text2"><br>例:令和太郎)</div>
</div>
<div class="areas">
<div class="columns">氏名(フリガナ)<span class="red">(必須)</span></div>
<div class="rows"><input type="text" name="sample" class="input-text3"><br>(例:レイワタロウ))</div>
</div>
</div>
</form>
<script src="script.js"></script>
</body>
_____________________________________________________________________
★CSS;
#GIF {
position: fixed;
z-index: 1000;
top: 0;
right: 0;
bottom: 0;
left: 0;
transition: all 1s ease;
background:url(images/https___arisago.com_official_wp-content_uploads_2017_08_005.gif) center/300px no-repeat, #080403;
}
.loaded {
opacity: 0;
visibility: hidden;
}
#form {
opacity: 0.1;
transform: translateY(20px);
transition: all 3s;
}
.fade_in {
opacity: 1;
transform: translateY(0);
}
______________________________________________________________________
★JavaScript;
window.onload = function() {
const load = document.getElementById('GIF');
load.classList.add('loaded');
}
*/
window.onload = function() {
const fadein = document.getElementById('form');
fadein.classList.add('fade_in');
}
No.1
- 回答日時:
こんにちは
気が付いた点を何点か・・・
スクリプトに「*/」だけあるので、現状ではおかしなことになっています。
(多分、コピペミスだと思いますが…)
ただし、それぞれを単独で、window.onloadで設定しようとしているフシが見られますが、後の設定で上書きされますので、後のものしか動作しなくなる可能性があります。
全体を一つのfundtionにまとめるか、または、個別に設定したいのであれば、addEventListenerを用いてバインドする必要があります。
https://developer.mozilla.org/ja/docs/Web/API/Ev …
form要素にクラスを設定できたとしても、現状のCSSではクラスに設定したCSSは反映されません。
理由は、#formで指定しているCSSの方が詳細度が高いために、そちらが優先されるからです。
(異なる属性に対するCSSであれば反映されますけれど)
詳しくは以下を参照
https://developer.mozilla.org/ja/docs/Web/CSS/Sp …
クラス設定した時にそちらが優先されるようにしたいとして、現状のままであれば、例えば、
.fade_in → #form.fade_in
としてCSSを指定することで、こちらが優先されるようになり、反映されるようになるでしょう。
No.2ベストアンサー
- 回答日時:
No1です。
DOMContentLoadedはwindowのイベントではないのかな?
それに、ご質問の場合は画像が絡んでいるので、loadの方が良いのでは?
こんなのでもダメですか??
window.addEventListener('load', function(){
document.getElementById('GIF').classList.add('loaded');
document.getElementById('form').classList.add('fade_in');
});
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- JavaScript vertical sliderをautoplayしたい 2 2022/08/25 14:47
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- HTML・CSS アコーディオンメニューが思うように動作しません。 1 2023/08/20 16:48
- JavaScript アップロードファイルの種類によって処理を分岐させたいのですが書き方が分からずアドバイスお願いします 4 2023/06/17 19:12
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
動画の上に広告をオーバーレイ...
-
時間帯によってclass名を変更し...
-
macかwinか判別しスタイルシー...
-
Q&A掲示板の入力フォームに文字...
-
3重のクォーテーション
-
javascriptでの(-)ハイフンの処...
-
CSSでreadonlyの機能はあり...
-
mouseoverで、リンクをずらす。
-
JspにIf条件を追加したいのです...
-
「ご処理進めて頂きますようお...
-
エクセルで、日付を入力すると...
-
Excelシート上のマクロを登録し...
-
EXCEL VBA マクロ 実行する度に...
-
switch の範囲指定
-
【Excel】特定の文字を含むセル...
-
CloseとDisposeの違い
-
VBAでループ内で使う変数名を可...
-
インタラクティブの反対語は?
-
「PC Helpsoft Driver Updated...
-
エクセルVBAで、MsgBox やInput...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Q&A掲示板の入力フォームに文字...
-
JavascriptでDom XSSの脆弱性対...
-
【JavaScript】検索がヒットし...
-
CSSでreadonlyの機能はあり...
-
JavascriptでXSSの脆弱性への対...
-
formのsubmitを押すとモーダル...
-
確認ダイアログを次からは表示...
-
特定の条件のHTML要素を一括で...
-
JavascriptのHTMLクラス表示に...
-
jQueryでのドラッグアンドドロ...
-
javascriptで複数の表示・非表...
-
jqueryを使ったスムーススクロ...
-
javascriptのエラーで質問です。
-
jqueryアコーディオンの上部の...
-
JavaScriptのdiv.style属性の変...
-
2回目以降のページロード時には...
-
改行をしたいが、<br>と...
-
jQueryのCSSで値に変数を使う方法
-
クリックすると、色が変わるよ...
-
動画の上に広告をオーバーレイ...
おすすめ情報
回答ありがとうございます。
let loading = document.getElementById('GIF');
document.addEventListener('DOMContentLoaded', function(){
loading.classList.add('loaded');
}, false);
let fade = document.getElementById('form');
document.addEventListener('DOMContentLoaded', function() {
fade.classList.add('fade_in');
}, false);
記述してみました。
でもこれだとイベントが不定期にしか発動せず困っています。
毎回ページに入る度に出来る様にしたいです。