
ファイルアップロードが可能な質問掲示板から投稿された動画を横スライダーで5件表示させたいと考えております。
初めは object-fit: cover; により拡大することで動画をスライド1枚の横幅に合わせるように調整したのですが、動画を横に拡大したことで画質を高く拡大が荒くなる問題が生じた為、修正方法についてアドバイスをお聞きいたしました。
※頂いたアドバイス
親要素に対して適切に寸法指定がなされていない場合には予期しない表示になることがあるようなので、動画の width, height に関係する CSS は全て指定したうえで、一番上の親要素に横幅を指定した
方が良い。
上記の通りに修正したところ上手くいっていたのですが、動画の数を5件からアップロードされた数に変更したところ、スライド1件目の領域にスライド2件目が表示されるようになってしまいました。
何故このようなことが起こるのか原因は分かりますでしょうか?
※現在のスクロール
https://imgur.com/UCv4Sxu.gif
※該当コード
https://wandbox.org/permlink/3zqZGcHoVl0Yk3q7
※横スライダーHTML
<div class="carousel-area">
<!-- スライド(コンテンツ) -->
<div id="carousel" class="carousel" style="transform: translateX(-20%);">
<div class="carousel-container">
<div class="carousel-video-area" style="display: inline-block;">
<a href="">
<div class="carousel-video-wrap">
<video class="carousel-video-streaming" src="" type="video/mp4" autoplay="" muted="" loop=""></video>
</div>
<div class="carousel-video-title"><script>document.write(truncate("タイトルテスト2タイトルテスト2タイトルテスト2タイトルテスト2タイトルテスト2タイトルテスト2タイ",19));<script>タイトルテスト2タイトルテスト2タイト...</div>
</a>
</div>
</div>
<div class="carousel-container">
<div class="carousel-video-area" style="display: inline-block;">
<a href="">
<div class="carousel-video-wrap">
<video class="carousel-video-streaming" src="" type="video/mp4" autoplay="" muted="" loop=""></video>
</div>
<div class="carousel-video-title"><script>document.write(truncate("タイトルテスト1タイトルテスト1タイトルテスト1タイトルテスト1タイトルテスト1タイトルテスト1タイ",19));<script>タイトルテスト1タイトルテスト1タイト...</div>
</a>
</div>
</div> </div>
<!-- 左右のボタン -->
<span id="prev" class="prev"></span>
<span id="next" class="next"></span>
<!-- インジケーター -->
<ul class="indicator" id="indicator">
<li class="list"></li><li class="list active"></li> </ul>
</div>
※横スライダーCSS
<style>
li {
list-style: none;
}
/* ↓ スライドの外枠 */
.carousel-area {
width: 50%;
height: 300px;
position: relative;
overflow: hidden;
/* はみ出したスライドを隠す */
}
/* ↓ スライド(コンテンツ) */
.carousel {
/*スライド全体 */
width: 500%; /*スライドが5枚なので100%に5をかける */
height: 100%;
display: flex;
transition: all 4s;
}
/* ↓ スライドの内枠 */
.carousel-container {
width: 100%; /*スライド1枚分なので100% */
height: 300px;
}
.carousel-video-area {
position: relative;
width: 300px;
height: 300px;
}
.carousel-video-wrap {
width: 100%;
height: 300px;
}
.carousel video { /* 質問掲示板 一覧表示画面の動画配置位置 */
width: 100%;
height: 100%;
object-fit: cover;
}
.next, .prev { /* スライド */
position: absolute;
width: 15px;
height: 15px;
bottom: 50%;
z-index: 10;
cursor: pointer;
border-top: solid 3px #fff;
border-right: solid 3px #fff;
}
/* ↓ 左右のボタン */
.next {
right: 10px;
transform: rotate(45deg) translateY(50%);
}
.prev {
left: 25px;
transform: rotate(-135deg) translateY(-50%);
}
/* ↓ インジケーター */
.indicator {
width: 100%;
position: absolute;
bottom: 20px;
display: flex;
column-gap: 18px;
z-index: 10;
justify-content: center;
align-items: center;
}
.indicator li {
width: 14px;
height: 14px;
border-radius: 50%;
background-color: rgba(255,255,255,.4);
border: 2px #000 solid;
cursor: pointer;
}
.indicator li.active {
background-color: #fff;
}
.carousel-video-title {
position: absolute;
top: 75%;
left: 50%;
white-space: nowrap;
transform: translateX(-50%);
font-size: 25px;
font-weight: 700;
color: #fff;
}
</style>
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
こんばんは
読み取るのが面倒そうなので、ご質問文だけを読んでの推測ですけれど・・
>スライド1件目の領域にスライド2件目が表示されるように
>なってしまいました。
>何故このようなことが起こるのか原因は分かりますでしょうか?
単純に、スライダーと動画のサイズが合っていないだけではないでしょうか?
スライダーのサイズの方が動画のサイズよりも大きい場合に、動画を横並びで並べていれば、次の動画が余白部分に見えてきているという事ではありませんか?
ご提示のHTMLを見ると、div要素がかなりネストしているので、スライド1枚のラッパに当たる要素があるものと推測します。
その要素のサイズをスライダーのサイズに合わせておいて、その中で動画等を配置するようにしておけば、余白の部分は余白として表示されるようになるでしょう。
(各動画のサイズがバラバラの場合でも、この方法であれば対応可能と思います)
動画のサイズが全て同じなら上記のような考慮は不要で、スライダーの表示サイズと合わせておくだけでもすむのではないでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript vertical sliderをautoplayしたい 2 2022/08/25 14:47
- HTML・CSS 初心者html・CSS ウィンドウを縮小するとタグの一部が隠れてしまう。 1 2023/12/18 19:52
- HTML・CSS サイトにコンテンツを並べる際の CSS についてアドバイスお願い致します。 5 2024/07/08 21:39
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- JavaScript 【JavaScript】検索がヒットした場合、プルダウンをオープンで表示させる方法 2 2023/09/06 14:02
- HTML・CSS ヘッダーの画像にメインエリアがかぶってしまいます 1 2022/11/28 14:06
- HTML・CSS CSS初心者です。わかる方教えてください。 3 2023/09/08 22:04
- HTML・CSS CSS のみのタブ切り替えについて 1 2023/01/11 16:47
- JavaScript Colorboxがうまく設置できません 2 2024/01/13 16:59
- HTML・CSS ボックスを中央配置したいです。 2 2023/09/19 17:09
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
背景を四隅に固定する
-
クリックするたびに違う文を表示
-
スタイルシート(CSS)で、高さ...
-
YES or NO形式で進んで行く、タ...
-
2つのDIVを中央と右に横並びに...
-
ポップアップ中に動くカウント...
-
【CSS】floatで左右に並べた...
-
離れた場所にマウスオーバーで...
-
CSS のみのタブ切り替えについて
-
ホームページのsidebar とconte...
-
オンマウス&スクロール
-
Webサイト作成 プログレスバー ...
-
javascriptテキストBOX色を元に...
-
複数画像のランダム複数表示(...
-
jspでcssが読み込めない
-
MAX関数を使ってからLEFT JOIN...
-
JSPでの画像ファイル表示
-
c++std::string型をTCHARに変換...
-
jQueryでクリックされた要素のi...
-
ホームページ作成について(HTML)
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CSS <div>の入れ子が反映さ...
-
Ctrl+F(検索)の窓を出したいの...
-
離れた場所にマウスオーバーで...
-
スタイルシートで画面を上下に...
-
フッター上部に謎の隙間
-
スライダーの枠に動画を収める...
-
【CSS】floatで左右に並べた...
-
リンクで違うページの指定箇所...
-
【html5】canvasでの文字の形の...
-
CSSで背景を下までのばすには?
-
Flickity で画像にリンクを貼る...
-
スクロール可能なチェックボックス
-
文字をクリックしたら別の文字...
-
文字を固定したいのですが…
-
[CSS] 常にフッターは下部に表...
-
IE6 で余分な border が表示さ...
-
スタイルシートで位置固定する...
-
枠がスクロールさせると消える
-
IEだけfloatがずれてしまう
-
clear: bothの事で質問です。
おすすめ情報