Result
昔Flash等で少し流行した、画像が分割されるアニメーションエフェクトです
今ではCSSだけで出来るようになりました
css
.card {/*親要素*/ border-radius: 16px; width: 360px; height: 360px; background: url(https://picsum.photos/400/300); position: relative; overflow: hidden; } .card:before {/*オーバーレイ*/ content: ""; position: absolute; width: 100%; height: 100%; top: 0; background-color: rgba(0, 0, 0, 0.92); } .card .img { position: absolute; top: 0; left: 0; width: 100%; height: 100%; display: flex; } .card .img span {/*4つに分割*/ width: 25%; height: 100%; background: url(https://picsum.photos/400/300); transition: 0.5s; } /*1つずつ画像の表示ポジションを設定してアニメーションを遅延させる*/ .card .img span:nth-child(1) { background-position: 0; transition-delay: 0; } .card .img span:nth-child(2) { background-position: 33.33%; transition-delay: 0.1s; } .card .img span:nth-child(3) { background-position: 66.66%; transition-delay: 0.2s; } .card .img span:nth-child(4) { background-position: 100%; transition-delay: 0.3s; } .card:hover .img > span { transform: translateY(-100%); } .card:hover .content { transform: translateY(0%); transition: 1s; transition-delay: 0.1s; }
html
<div class="card"> <div class="img"> <span></span><span></span><span></span><span></span></div> <div class="content"> <h2>hoge</h2> <h2>huga</h2> <h4>piyopiyo</h4> </div> </div>
空要素が気持ち悪い方には申し訳ありません