スライダー用の画像のCSSが適用される前に表示されてしまう
- 評価
- クリップ 1
- VIEW 581
困っていること
Swiper.jsを利用しサイトのメインビジュアル部分をスライドさせようとしています。
ただ、ページをロードすると、読み込み途中にCSS適用前の画像が横並びに表示されてしまいます。↓
ユーザーには常に1枚目の状態で画像を表示させたいのですが、画像2枚目のような表示を防ぐ方法があればご教示いただけますと幸いです。
よろしくお願いいたします。
追記
コードの提示をご依頼いただいたので記述いたします。
<div class="main-visual">
<div class="add-wrapper">
<div class="swiper-container swiper1">
<div class="swiper-wrapper">
<div class="swiper-slide slide1">
<a href="<?php echo MODULE_WEB_ROOT; ?>findinfo" class="cover"></a>
</div>
<div class="swiper-slide slide2">
<a href="<?php echo MODULE_WEB_ROOT; ?>findinfo" class="cover"></a>
</div>
<div class="swiper-slide slide3">
<a href="<?php echo MODULE_WEB_ROOT; ?>findinfo" class="cover"></a>
</div>
<div class="swiper-slide slide4">
<a href="<?php echo MODULE_WEB_ROOT; ?>findinfo" class="cover"></a>
</div>
<div class="swiper-slide slide5">
<a href="<?php echo MODULE_WEB_ROOT; ?>findinfo" class="cover"></a>
</div>
</div>
<!-- swiperのページネーション -->
<div class="swiper-pagination page1"></div>
<!-- ナビゲーション -->
<div class="swiper-button-prev prev1"></div>
<div class="swiper-button-next next1"></div>
</div>
</div>
</div>
.main-visual {
width: 100%;
height: 522px;
background-image: url(../background-image);
background-repeat: repeat;
z-index: 0;
background-color: #F0F0F0;
overflow-x: hidden;
overflow-y: hidden;
position: relative;
}
.add-wrapper {
margin-left: auto;
margin-right: auto;
max-width: 900px;
}
.swiper1 {
width: 100%;
overflow: visible;
z-index: 1;
height: 520px;
}
.swiper1 .swiper-slide {
vertical-align: middle;
margin-top: 88px;
position: relative;
transition: all .7s cubic-bezier(0.165, 0.84, 0.44, 1) 0s;
height: 335px !important;
}
.swiper1 .swiper-slide .mv-img {
width: 670px !important;
height: 335px !important;
}
.swiper1 .swiper-slide-active {
height: 450px !important;
width: 900px !important;
margin-top: 30px;
}
.swiper1 .swiper-slide-active .mv-img {
height: 450px !important;
width: 900px !important;
}
.swiper1 .swiper-slide-prev,
.swiper1 .swiper-slide-next {
width: 100% !important;
height: 335px !important;
}
.swiper1 .swiper-slide-prev::after,
.swiper1 .swiper-slide-next::after {
content: "";
position: absolute;
display: block;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.7);
}
.swiper1 .swiper-slide-prev .mv-img {
width: 670px !important;
height: 335px !important;
position: absolute;
top: 0;
right: 0;
}
.swiper1 .swiper-slide-next .mv-img {
width: 670px !important;
height: 335px !important;
position: absolute;
top: 0;
left: 0;
}
.swiper1 .swiper-pagination {
width: 100%;
left: 0;
bottom: 10px;
}
.swiper1 .swiper-button-next,
.swiper1 .swiper-button-prev {
transform: translateY(-50%) translateX(-50%);
-webkit-transform: translateY(-50%) translateX(-50%);
margin-top: 0;
}
.swiper1 .swiper-button-next{
right: calc(-50vw + 470px);
width: 32px;
height: 60px;
background-image: url(../swiper-button-image);
}
.swiper1 .swiper-button-prev{
left: calc(-50vw + 496px);
width: 32px;
height: 60px;
background-image: url(../swiper-button-image);
}
.swiper-pagination-bullet-active {
opacity: 1;
background: #91d539;
}
.swiper1 .slide1 {
background-image: url(../slide-image);
background-position: center;
background-size: cover;
background-repeat: no-repeat;
}
.swiper1 .slide2 {
background-image: url(../slide-image);
background-position: center;
background-size: cover;
background-repeat: no-repeat;
}
.swiper1 .slide3 {
background-image: url(../slide-image);
background-position: center;
background-size: cover;
background-repeat: no-repeat;
}
.swiper1 .slide4 {
background-image: url(../slide-image);
background-position: center;
background-size: cover;
background-repeat: no-repeat;
}
.swiper1 .slide5 {
background-image: url(../slide-image);
background-position: center;
background-size: cover;
background-repeat: no-repeat;
}
window.addEventListener('load', function() {
var mySwiper = new Swiper ('.swiper1', {
loop: true,
slidesPerView: '1',
centeredSlides : true,
loopedSlides:5,
spaceBetween: 0,
clickable: true,
breakpoints: {
960: {
slidesPerView: 1,
spaceBetween: 0
}
},
navigation: {
nextEl: '.next1',
prevEl: '.prev1',
},
pagination: {
el: '.page1',
},
autoplay: {
delay: 7000,
disableOnInteraction: false
},
speed: 700,
roundLengths: true,
});
}, false);
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 過去に投稿した質問と同じ内容の質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
checkベストアンサー
+2
メインビジュアル全体に透過をかけておいて、
スライド描画完了時(コールバック関数 OnInit内)で透過を解除するとかどうでしょう
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
0
load時にjsを実行するのはどうでしょうか?
詳しくはこちら
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
0
swiper-slide-active
を最初の要素のクラスに書いておくとかどうでしょう。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 88.20%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる
質問への追記・修正、ベストアンサー選択の依頼
kei344
2019/08/28 16:00
「1枚目の状態」をどのように組んでいるのか再現できるコードを質問文に提示してください。
GenkiSugiyama
2019/08/28 16:21
@kei344 様
コメントありがとうございます。コードを提示いたしましたのでご確認いただけると幸いです。