LoginSignup
ishiguro3
@ishiguro3

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

下から上へ無限ループするCSSアニメーション

解決したいこと

スマホ、タブレット時でも下から上へ無限ループさせたい。
・PC、ノートPCでは問題なし。
・何故かスマホとタブレットサイズになると例の余白ができる。

該当するソースコード

HTML

<main>
	<section id="mv" class="mv">
		<div class="mv_wrap ">
			<ul class="grid mv_list mv_list-up">
				<li class="item0 mv_item sp_tb">
					<img src="./images/mv/mv0.jpg">
				</li>
				<li class="item1 mv_item">
					<img src="./images/mv/mv1.jpg">
				</li>
				<li class="item2 mv_item">
					<img src="./images/mv/mv2.jpg">
				</li>
				<!-- 省略 -->
				<li class="item9 mv_item">
					<img src="./images/mv/mv9.jpg">
				</li>
				<li class="item10 mv_item">
					<img src="./images/mv/mv10.jpg">
				</li>
			</ul>
			<ul class="grid mv_list mv_list-up">
				<li class="item11 mv_item">
					<img src="./images/mv/mv11.jpg">
				</li>
				<li class="item12 mv_item">
					<img src="./images/mv/mv12.jpg">
				</li>
				<!-- 省略 -->
				<li class="item18 mv_item">
					<img src="./images/mv/mv18.jpg">
				</li>
				<li class="item19 mv_item">
					<img src="./images/mv/mv19.jpg">
				</li>
				<li class="item20 mv_item">
					<img src="./images/mv/mv20.jpg">
				</li>
				<li class="item21 mv_item sp_tb">
					<img src="./images/mv/mv21.jpg">
				</li>
			</ul>
		</div>
	</section>
</main>

CSS

/*===================
  mv-grid
====================*/
.grid {
	display: grid;
	grid-template-columns: repeat(4, 4fr);
	grid-auto-rows: 320px;
	background-color: #fff;
}
	.grid > li {
		position: relative;
	}
		.grid > li img {
			position: absolute;
			left: 0;
			top: 0;
		}
.grid > li:nth-child(1) {
    grid-column: 1;
    grid-row: 1;
}
.grid > li:nth-child(2) {
    grid-column: 2;
    grid-row: 1;
}
.grid > li:nth-child(3) {
    grid-column: 1;
    grid-row: 2;
}
.grid > li:nth-child(4) {
    grid-column: 2;
    grid-row: 2;
}
.grid > li:nth-child(5) {
    grid-column-start: 3;
    grid-column-end: 5;
    grid-row-start: 1;
    grid-row-end: 3;
}
.grid > li:nth-child(6) {
    grid-column-start: 1;
    grid-column-end: 3;
    grid-row-start: 3;
    grid-row-end: 5;
}
.grid > li:nth-child(7) {
    grid-column: 3;
    grid-row: 3;
}
.grid > li:nth-child(8) {
    grid-column: 4;
    grid-row: 3;
}
.grid > li:nth-child(9) {
    grid-column: 3;
    grid-row: 4;
}
.grid > li:nth-child(10) {
    grid-column: 4;
    grid-row: 4;
}

.mv {
	height: 100vh;
    overflow: hidden;
    position: relative;
}
.mv_wrap {
  overflow: hidden;
}
.mv_list-up{
	animation :infinity-scroll-up 50s infinite linear 0.5s both;
}
.mv_item > img{
   width: 100%;
}


/*下から上へ*/
@keyframes infinity-scroll-up {
  from {
    transform: translateY(0);
  }
  to {
    transform: translateY(-100%);
  }
}

@media screen and (max-width:1440px) { 
.grid {
		grid-auto-rows: 140px;
	}
}

@media screen and (max-width:1024px) { 
.grid {
		grid-auto-rows: 86px;
	}
    .grid > li.mv_item:nth-child(11) {
        grid-column-start: 1;
        grid-column-end: 5;
        grid-row-start: 5;
        grid-row-end: 9;
    }
}

@media screen and (max-width:768px) { 
	.grid {
		display: grid;
		grid-template-columns: repeat(4, 2fr);
		grid-auto-rows: 70px;
		background-color: #fff;
	}
}

自分で試したこと

以下の数値を調整すると余白が出る前に先頭に戻ってくれます。

grid-auto-rows: ○○px;

また、ulを3つ目を追加したら余白が出る前に先頭に戻ってくれます。
(たぶん、新しい要素の高さが生まれたからだと推測される)

つまり、そういうことなんでしょうか。
原因は要素の高さが足りないだけということでしょうか・・・

横から流れ続ける無限ループのCSSアニメーション等の記事のデモなどチェックすると、
なんだか動きも違う気もしてます。

0

No Answers yet.

Your answer might help someone💌