
ファイルアップロードが可能な質問掲示板から投稿された動画を横スライダーで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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
文字をクリックしたら別の文字...
-
2つのDIVを中央と右に横並びに...
-
チェックボックスの背景色って...
-
createElementが一瞬で消えてし...
-
JSPでの画像ファイル表示
-
オブジェクトがありませんのエラー
-
jQueryの配列の渡し方について
-
ドラックアンドドロップ?
-
「jQuery」アコーディオンメニ...
-
画像処理 C言語 元画像の幅...
-
折りたたみ式JavaScriptをcheck...
-
classの中の<a>タグにidを追加
-
javascrip 切り替えのやり方
-
lightbox2をiframeから外に表示...
-
1枚の画像をクリックすると複数...
-
取得した要素がインライン要素...
-
Javascript初心者|jQueryの.va...
-
VBAでIEを動かす場合、下記の①...
-
jQueryで同じクラス名のものを...
-
imgのsrcに値を設定するには
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
スクロール可能なチェックボックス
-
背景画像
-
困っています!!
-
CSS <div>の入れ子が反映さ...
-
Ctrl+F(検索)の窓を出したいの...
-
SeesaaブログにBlogPeople (...
-
背景画像がつられてのびていく...
-
オンマウス時に別画像を上に重...
-
floatさせたdivタグを折り返さ...
-
リンクで違うページの指定箇所...
-
CSSで親ボックスの背景画像を設...
-
【CSS】floatで左右に並べた...
-
マウスオーバーのメニューについて
-
HP作成/広告表示について
-
CSSでテキストの均等割付
-
離れた場所にマウスオーバーで...
-
CSSでdivのheightを動的に
-
FC2カテゴリ親文字だけ大きく、...
-
CSSでdivの縦幅を指定する方法
-
スタイルシートで画面を上下に...
おすすめ情報