CSSだけで横からスライドインさせるアニメーション
<div id="top" class="container">
<p>
<span class="slidein-left slidein01">CSSだけでこのような</span><br>
<span class="slidein-left slidein02">アニメーションを表現できます。</span>
</p>
<div class="img slidein-left slidein03">
<img src="https://cdn.pixabay.com/photo/2020/04/07/17/01/chicks-5014152_640.jpg" alt>
</div>
<p>
<span class="slidein-left slidein04">比較的簡単に実装できます。</span><br>
<span class="slidein-left slidein05">jQuery使わなくてもいいんです。</span>
</p>
<div class="img slidein-right slidein06">
<img src="https://cdn.pixabay.com/photo/2020/04/06/11/22/seedling-5009286_640.jpg" alt>
</div>
<p>
<span class="slidein-left slidein07">複数の要素に実装できるのですが、</span><br>
<span class="slidein-left slidein08">スクロールしていない部分の要素も</span><br>
<span class="slidein-left slidein09">アニメーションされてしまいます。</span><br>
</p>
<div class="img slidein-left slidein10">
<img src="https://cdn.pixabay.com/photo/2020/04/09/11/42/dogs-5021085_640.jpg">
</div>
<p>
<span class="slidein-left slidein11">ファーストビューだけにしましょう。</span>
</p>
<p>
<span class="slidein-left slidein12">ちなみにこのアニメーションを</span><br>
<span class="slidein-left slidein13">スライドインとしましたが、</span><br>
<span class="slidein-left slidein14">本当の名前は何ていうんだろう。</span>
</p>
<p>
<span class="slidein-left slidein15">知っている人がいましたら</span><br>
<span class="slidein-left slidein16">教えて下さい!</span>
</p>
</div>
<footer id="footer">
<p class="totop">
<a href="#top">^</a>
</p>
</footer>
$(function(){
$('a[href^="#"]').click(function() {
var speed = 400; // スクロールスピード(ミリ秒)
var href= $(this).attr("href");
var target = $(href == "#" || href == "" ? 'html' : href);
var position = target.offset().top;
$('body,html').animate({scrollTop:position}, speed, 'swing');
return false;
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.0/jquery.min.js"></script>
body {
color: #f4f4f4;
font-size: 1.6rem;
font-family: 'Noto Sans JP',sans-serif;
line-height: 1.61;
background-color: #00293e;
}
.container {
margin: 0 auto;
padding: 160px 0 100px;
width: 1000px;
text-align: center;
}
.container p {
margin-bottom: 50px;
font-size: 2.4rem;
font-weight: bold;
}
.container p span {
display: inline-block;
position: relative;
font-weight: bold;
}
.container p span::before {
content: "";
position: absolute;
width: 105%;
height: 105%;
background-color: #00293e;
}
.img {
position: relative;
margin-bottom: 50px;
height: 300px;
}
.img img {
display: block;
width: 100%;
height: 100%;
object-fit: cover;
}
.img::before {
content: "";
position: absolute;
right: 0;
width: 110%;
height: 110%;
background-color: #00293e;
}
.slidein-left::before {
top: -1px;
right: -1px;
}
.slidein-right::before {
top: -1px;
left: -1px;
}
.slidein01::before {
animation: .5s slidein 1s forwards;
}
.slidein02::before {
animation: .5s slidein 2s forwards;
}
.slidein03::before {
animation: .7s slidein 3s forwards;
}
.slidein04::before {
animation: .5s slidein 4s forwards;
}
.slidein05::before {
animation: .5s slidein 5s forwards;
}
.slidein06::before {
animation: .7s slidein 6s forwards;
}
.slidein07::before {
animation: .5s slidein 7s forwards;
}
.slidein08::before {
animation: .5s slidein 8s forwards;
}
.slidein09::before {
animation: .5s slidein 9s forwards;
}
.slidein10::before {
animation: .7s slidein 10s forwards;
}
.slidein11::before {
animation: .5s slidein 11s forwards;
}
.slidein12::before {
animation: .5s slidein 12s forwards;
}
.slidein13::before {
animation: .5s slidein 13s forwards;
}
.slidein14::before {
animation: .5s slidein 14s forwards;
}
.slidein15::before {
animation: .5s slidein 15s forwards;
}
.slidein16::before {
animation: .5s slidein 16s forwards;
}
@keyframes slidein {
0% {
width: 100%;
}
100% {
width: 0;
}
}
.totop {
display: block;
position: relative;
text-align: center;
}
.totop::before {
content: "";
display: block;
position: absolute;
top: 0;
width: 100vw;
height: 85px;
background-color: #00293e;
animation: .6s totop 17s forwards;
}
@keyframes totop {
0% {
height: 100%;
}
100% {
height: 0;
}
}
.totop a {
display: block;
width: 1000px;
padding: 30px;
margin: 0 auto;
color: #00293e;
text-align: center;
text-decoration: none;
background-color: #ffd700;
transition: all .7s;
}
@media screen and (max-width: 1000px) {
.container {
padding: 100px 30px 50px;
width: 100%;
}
.totop a {
width: 100%;
}
}
@media screen and (max-width: 768px) {
body {
font-size: 1.5rem;
}
}