Swiper でページの動的追加
javascript でスワイプを実現する Swiper
予めページ数が決まっていれば、その形で設計すればいいんだろうけど、日付みたいに無限にスワイプさせたい事はよくある話
onSlideChangeEnd イベントで、末尾の場合は後ろに div を追加、先頭の場合は div を挿入(2ページ目へ戻す)という手順
あたりまえですが、最初に最低でも3枚は必要になり、initialSlide: 1 で中央のを選択しておきます
次々と div セクションが追加されるので、あまりにページが多い場合は、逆の端から削除するのがよいかもね
予めページ数が決まっていれば、その形で設計すればいいんだろうけど、日付みたいに無限にスワイプさせたい事はよくある話
onSlideChangeEnd イベントで、末尾の場合は後ろに div を追加、先頭の場合は div を挿入(2ページ目へ戻す)という手順
あたりまえですが、最初に最低でも3枚は必要になり、initialSlide: 1 で中央のを選択しておきます
次々と div セクションが追加されるので、あまりにページが多い場合は、逆の端から削除するのがよいかもね
<html>
<head>
<link rel="stylesheet" href="idangerous.swiper.css">
<script src="idangerous.swiper.js"></script>
<script type="text/javascript" src="jquery-1.11.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
var MCount = 0;
var mySwiper = new Swiper('.swiper-container', {
mode:'horizontal',
initialSlide: 1,
loop: false,
onSlideChangeEnd: function(){
if(mySwiper.activeIndex == 0){
// 先頭に挿入
MCount--;
$(".swiper-wrapper").prepend('<div class="swiper-slide" style="background: #eeeeff;">' + String(MCount) + '</div>');
mySwiper.reInit();
mySwiper.swipeTo(1, 0, null);
}else{
var slidepanels = $(".swiper-wrapper").children('div');
if (slidepanels.length -1 == mySwiper.activeIndex){
// 末尾に追加
$(".swiper-wrapper").append('<div class="swiper-slide" style="background: #eeeeff;">' + String(mySwiper.activeIndex + 1) + '</div>');
mySwiper.reInit();
}
}
}
});
});
</script>
</head>
<body>
<hr />
<div class="swiper-container">
<div class="swiper-wrapper">
<div class="swiper-slide" style="background: #f7eeee;">
0
</div>
<div class="swiper-slide" style="background: #eeffee;">
1
</div>
<div class="swiper-slide" style="background: #eeeeff;">
2
</div>
</div>
</div>
<hr />
</body></html>
コメント