jsでのスライダーライブラリ
swiper というライブラリ
githubに上がっているswiperのzipをダウンロードし、解凍する
package内のcssのswiper.cssとjsのswiper.min.jsを読み込ませたいファイルにいれる
<div class="swiper-container">
<div class="swiper-wrapper">
<div class="swiper-slide"><img src="img/items01.jpg" alt=""></div>
<div class="swiper-slide"><img src="img/items02.jpg" alt=""></div>
<div class="swiper-slide"><img src="img/items03.jpg" alt=""></div>
</div>
<div class="swiper-button-prev"></div>
<div class="swiper-button-next"></div>
</div>
が基本的な構造で、クラス間違うと実装できないので、このまま使う
var swiper = new Swiper('.swiper-container', {
navigation: {
nextEl: '.swiper-button-next',
prevEl: '.swiper-button-prev',
}
});
jsコード ループさすには最後に
,
loop: true,
という感じでオプションをつけていく
.swiper-button-prev , .swiper-button-next{
width : 32px;
height : 32px;
margin-top : -16px;
}
.swiper-button-prev{
background : url(ここに指定したい画像パス) no-repeat center center / contain;
}
.swiper-button-next{
background : url(ここに指定したい画像パス) no-repeat center center / contain;
}
で矢印の変更
,
loop: true,
autoplay: {
delay: 3000,
disableOnInteraction: true
},
でスライダーの自動再生
,
speed: 100,
で、スライドの表示速度
<div class="swiper-pagination"></div>
をhtmlのbutton-prevの前に入れると
ドットで表示
,
pagination: {
el: '.swiper-pagination',
clickable: true,
それのjsコード
smooth scroll というライブラリについて
githubに上がっているsmooth-scrollのzipをダウンロードし、解凍する
distのファイルの中にsmooth-scroll.polyfills.min.jsというやつをつかたいファイルに入れる
あとは、
リンクしたい箇所に『id=”hoge”』 ※hogeは適当なので、任意の名前に変更
リンクボタンに『#hoge』
optionで
var scroll = new SmoothScroll('a[href*="#"]', {
speed: 1000,
});
を入れることにより、時間調整
scrolltrigger というライブラリについて
githubに上がっているscrolltriggerをダウンロードし、解凍する
distのファイルの中にScrollTrigger.min.jsというやつをつかたいファイルに入れる
同じように読み込ませて
効かせたいとこのクラスにvisibleを追加し、そのそとに
属性値としてdata-triggerを付与する
で下のscriptに
const trigger = new ScrollTrigger.default()
trigger.add('[data-trigger]',
{
once: true,
offset: {
viewport: {
y: (trigger, frame, direction) => {
return trigger.visible ? 0 : .3
}
}
},
},
)
ちなみにonseはスクロールの回数
.3は時間
cssに
/* アニメーション */
.visible , .invisible{
transition : opacity 0.5s ease;
opacity : 0.0;
}
.visible{
opacity : 1.0;
}
を追加し、あとはオリジナルでcssに書いていく
/* 上にアニメーション */
.visible.animeTop , .invisible.animeTop{
transition : all 0.5s;
transform : translateY(100px);
}
.visible.animeTop{
transform : translateY(0);
}
/* 左からアニメーション */
.visible.animeLeft , .invisible.animeLeft{
transition : all 0.3s;
transform : translateX(-40px);
}
.visible.animeLeft{
transform : translateX(0);
}
といった感じ
この記事が気に入ったらサポートをしてみませんか?