Swiperでスライド画像が拡大するアニメーションの作り方を紹介します。
実装方法自体は、CSSを数行追記するだけの簡単操作で非常にお手軽です。
完成スライドとポイント
拡大アニメーション付きのSwiperスライドの動作とコード
下に拡大アニメーション付きのSwiperスライドのCodePenを置いておきます。アニメーション動作とコードをご確認下さい。
See the Pen Swiper | Enlarge Image by s sim (@s-sim) on CodePen.
コーディングのポイント
このアニメーションを実装するための設定はCSSを追記するのみで、HTMLとJavaScriptは通常のSwiperスライドのものと同じです。
CSS
拡大アニメーションで追記するCSS
拡大アニメーション機能を実装するのに必要なCSSは下記のとおりです。
/* ここからスライド画像の拡大アニメーション */
@keyframes zoom {
0% {
transform: scale(1);
}
100% {
transform: scale(1.15);
}
}
.swiper-slide-active .slide-img,
.swiper-slide-duplicate-active .slide-img,
.swiper-slide-prev .slide-img {
animation: zoom 7s linear 0s normal both;
}
上のCSSでセレクター「.slide-img」は、スライド画像用imgタグのクラス属性です。このクラス名は各自違うと思いますので、必要に応じて入れ替えてください。
他はすべて共通になりますので変える必要はなく、コピペで実装できます。
CSS全文
念のため、CSS全文も掲載しておきますが、通常のSwiperスライドと同一です。
@charset "UTF-8";
body {
font-family: "Noto Sans JP", "メイリオ", "Meiryo", "MS ゴシック",
"Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN", sans-serif;
}
/* スライド */
.lp-slide {
margin: 0 auto;
max-width: 1280px;
width: 100%;
}
.slide-img {
width: 100%;
object-fit: contain;
}
/* ここからスライド画像の拡大アニメーション */
@keyframes zoom {
0% {
transform: scale(1);
}
100% {
transform: scale(1.15);
}
}
.swiper-slide-active .slide-img,
.swiper-slide-duplicate-active .slide-img,
.swiper-slide-prev .slide-img {
animation: zoom 7s linear 0s normal both;
}
ここでは説明を省きますが、詳しくは下記の記事を参照下さい。
HTML
HTML全文も掲載しておきますが、通常のSwiperスライドと同一です。
<body>
<!-- スライド -->
<div class="lp-slide">
<div class="lp-slide_wrapper">
<div class="swiper mySwiper">
<div class="swiper-wrapper">
<div class="swiper-slide">
<!-- スライド1の画像 -->
<div class="slide-img_wrapper"><img class="slide-img" src="https://shimizu-create.com/wp-content/uploads/2023/10/slide_pic1.jpg"
alt="スライド1">
</div>
</div>
<div class="swiper-slide">
<!-- スライド2の画像 -->
<div class="slide-img_wrapper"><img class="slide-img" src="https://shimizu-create.com/wp-content/uploads/2023/10/slide_pic2.jpg" alt="スライド2">
</div>
</div>
<div class="swiper-slide">
<!-- スライド3の画像 -->
<div class="slide-img_wrapper"><img class="slide-img" src="https://shimizu-create.com/wp-content/uploads/2023/10/slide_pic3.jpg" alt="スライド3">
</div>
</div>
<div class="swiper-slide">
<!-- スライド4の画像 -->
<div class="slide-img_wrapper"><img class="slide-img" src="https://shimizu-create.com/wp-content/uploads/2023/10/slide_pic4.jpg" alt="スライド4">
</div>
</div>
</div>
<!-- swiperの画面下部のページネーションのポチポチ -->
<div class="swiper-pagination"></div>
</div>
</div>
</div>
<!-- script -->
<script src="https://cdn.jsdelivr.net/npm/swiper/swiper-bundle.min.js"></script>
</body>
CSSと同様の説明は省略しますが、詳しくは下記の記事を参照願います。
JavaScript
JavaScript全文も掲載しておきますが、通常のSwiperスライドと同一です。
// トップページのスライド
var swiper = new Swiper(".mySwiper", {
slidesPerView: 1, //一度に表示するスライド枚数
spaceBetween: 0, //スライド間の余白
loop: true, //ループさせるか?
speed: 1000, //スライド速度
effect: "fade", //スライドをフェードで切り替える
autoplay:{
delay: 3000, //スライド保持時間
},
pagination: {
el: ".swiper-pagination",
clickable: true,
},
navigation: {
nextEl: ".swiper-button-next",
prevEl: ".swiper-button-prev",
},
});
HTMLと同様の説明は省略しますが、詳しくは下記の記事を参照願います。
関連記事
Swiperのスライドの上のレイヤーにボタンをオーバーレイ表示する方法
さいごに
以上、Swiperでスライド画像を拡大させるアニメーションの実装方法を紹介しました。
意外と簡単に実装できますので、ご興味のある方は是非チャレンジしてみて下さい。