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

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

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

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

CSS

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

Q&A

解決済

2回答

2040閲覧

ローディング後のスリックの挙動

reon.com

総合スコア6

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

CSS

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

0グッド

1クリップ

投稿2021/12/22 09:52

目指している挙動

①ローディングアニメーションが流れる(固定の秒数)
②ページのコンテンツを表示(ファーストビューでは、スリックのスライダーを使用している)
※ページのコンテンツには、表示されてから動きがあるものがあるから、ローディングアニメーションが終わってから、動いて欲しい

###現状の動き
ローディングアニメーションが流れている間にも、ページのコンテンツは動いていて、ローディングアニメーションが終わる頃には、ページコンテンツの動きが終了してしまっている。

###試したこと
初めから、ページコンテンツをdisplay:none;にしておき、delay関数で一定時間後にdisplay:block;のクラスを付与して表示する。

結果

動きに関しては、予定通りに、ローディングアニメーションが終わってから、スライドが動いてくれた。
だが、slickの挙動がおかしくなっていた。
ページコンテンツが表示されてから、初めはスリックのwidthが0pxになっていおり、そして、2枚目のスライドの中盤に差し掛かってやっと指定していたwidthに戻った。

###有識者に質問
1個目:自分の「試したこと」の方向性は合っているのか。また、もっといい方法があるのか。
2個目:自分の「試している」ことの解決方法

###コードを置いておきます。

html

1<div class="loading-bg"> 2 <div class="loading-logo"> 3 <img src="/assets/img/logo.png" alt=""> 4 </div> 5</div> 6<div class="container"> 7 <!--ページコンテンツ--> 8</div>

js

1$(window).on('load', function () { 2 $(".loading-bg").delay(1500).fadeOut('slow', function () { 3 $('.container').addClass('appear'); 4 }); 5 $(".loading-logo").delay(1300).fadeOut('slow'); 6});

css

1.container {/*初期非表示*/ 2 display: none; 3} 4 5.container.appear {/*表示*/ 6 display: block; 7}

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

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

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

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

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

guest

回答2

0

ご教示いただいた内容で、思った通りの挙動におちつきました。
本当にありがとうございました!!!!!!!!!!!!

その後として、改善した箇所は、

js

1$('.container').addClass('appear');

の後に、以前設定していた、scroll_effect()などを持ってきたら、以前通りの挙動になりました。

投稿2021/12/23 00:35

編集2021/12/23 00:53
reon.com

総合スコア6

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

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

0

ベストアンサー

slickのセットアップ処理をどのタイミングでどこでやってるかが示されてないので正しいかわからないですが、要は、「ロゴを1.3秒後に消す > containerを1.5秒後に出す」のように 秒数でなんとかコントロールしようとしているのが良くないんだと思います。
(containerにappearが付く前にslick初期化が走っているということではないかと。)

javascript

1$(window).on('load', function(){ 2 $(".loading-logo").delay(1300).fadeOut('slow', function() { 3 $('.container').addClass('appear'); 4 $('.slider').slick(); 5 }) 6})

ロゴのフェイドアウトのコールバックでコンテナ表示とslickセットアップを行えば上手くいくんじゃないでしょうか。

投稿2021/12/22 11:17

umau

総合スコア831

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問