既存のSwiperスライドにCSSを追加するだけで拡大アニメーションを実装する方法を紹介します。なお、追加するCSSは完全にコピペのみでアニメーションが実装できます。
見本(CodePen)
最初に完成品のCodePenを載せておきます。スライドが拡大するアニメーション動作やコードをご確認下さい。
See the Pen Swiper | 拡大アニメーション by s sim (@s-sim) on CodePen.
SwiperのCDNに記載されるSwiperバージョンですが、バージョン9に固定しました。この記事も最初はCDNのバージョンを明記せずに常に最新バージョンが適用されるようにしていましたが、2023/9/23時点でオートプレイが2枚目で止まってしまうバグを確認したため、正常に動作するバージョン9に変更いたしました。
具体的にどの部分が変わっているかというと、上記CDN中の「swiper@9」が修正以前は「swper」でした。
拡大アニメーション用の追加CSS
上のCodePenで紹介したスライドの拡大アニメーションですが、実は数行のCSSをコピペで追加するだけで実装が可能です。
下記CSSをコピペするだけでOKですので、是非お試し下さい。
注意:「.slide-img」などのスライド画像のクラス属性は適宜変更して下さい。当然ですが、HTMLのクラス属性と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;
}
少し捕捉すると、拡大率は下記2箇所の数字で変更できます。
- 4行目のscale(1):カッコ内の数字は拡大スタート時点の画像の拡大率です。
- 7行目のscale(1.1):カッコ内の数字は拡大アニメーション終了時点の画像の拡大率です。
アニメーションの時間と特徴は13行目の数字で変更可能です。