JavaScriptにてスワイプ可能なLightBox系ライブラリ「PhotoSwipe」の利用方法
あるサイトをWappalyzerで調査していた際に「PhotoSwipe」という見たことの無いJavaScriptライブラリが使用されていた。調べてみるとLightBox系ライブラリでスワイプに対応していたり、色々高機能みたい。以下にサンプルと利用方法をメモ。
サンプル
https://taitan916.info/sample/PhotoSwipe/
スライダー表示・個別表示が確認できる筈。
PhotoSwipe
GitHub
https://github.com/dimsemenov/photoswipe
公式サイト
CDN
CDNで使う場合は以下を記述する。
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/photoswipe/5.4.4/photoswipe.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/photoswipe/5.4.4/umd/photoswipe.umd.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/photoswipe/5.4.4/umd/photoswipe-lightbox.umd.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/photoswipe/5.4.4/photoswipe.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/photoswipe/5.4.4/umd/photoswipe.umd.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/photoswipe/5.4.4/umd/photoswipe-lightbox.umd.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/photoswipe/5.4.4/photoswipe.min.css"> <script src="https://cdnjs.cloudflare.com/ajax/libs/photoswipe/5.4.4/umd/photoswipe.umd.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/photoswipe/5.4.4/umd/photoswipe-lightbox.umd.min.js"></script>
利用方法
ソースコード
<style>
img{
width: 200px;
}
a{
text-decoration: none;
}
.gallery{
margin-bottom: 20px;
}
.title{
font-weight: bold;
}
</style>
<div id="gallery_1" class="gallery">
<div class="title">スワイプ可能(スライダー表示)</div>
<div class="img">
<a href="./img/001.jpg" data-pswp-width="400" data-pswp-height="200">
<img src="./img/001.jpg">
</a>
</div>
<div class="img">
<a href="./img/002.jpg" data-pswp-width="400" data-pswp-height="200">
<img src="./img/002.jpg">
</a>
</div>
<div class="img">
<a href="./img/003.jpg" data-pswp-width="400" data-pswp-height="200">
<img src="./img/003.jpg">
</a>
</div>
</div>
<div id="gallery_2" class="gallery">
<div class="title">スワイプ不可(個別表示)</div>
<div class="img">
<a href="./img/001.jpg" data-pswp-width="400" data-pswp-height="200">
<img src="./img/001.jpg">
</a>
</div>
<div class="img">
<a href="./img/002.jpg" data-pswp-width="400" data-pswp-height="200">
<img src="./img/002.jpg">
</a>
</div>
<div class="img">
<a href="./img/003.jpg" data-pswp-width="400" data-pswp-height="200">
<img src="./img/003.jpg">
</a>
</div>
</div>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/photoswipe/5.4.4/photoswipe.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/photoswipe/5.4.4/umd/photoswipe.umd.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/photoswipe/5.4.4/umd/photoswipe-lightbox.umd.min.js"></script>
<script>
const lightbox_1 = new PhotoSwipeLightbox({
gallery: '#gallery_1',
children: 'div.img',
pswpModule: PhotoSwipe
});
lightbox_1.init();
const lightbox_2 = new PhotoSwipeLightbox({
gallery: '#gallery_2 a',
pswpModule: PhotoSwipe
});
lightbox_2.init();
</script>
<style>
img{
width: 200px;
}
a{
text-decoration: none;
}
.gallery{
margin-bottom: 20px;
}
.title{
font-weight: bold;
}
</style>
<div id="gallery_1" class="gallery">
<div class="title">スワイプ可能(スライダー表示)</div>
<div class="img">
<a href="./img/001.jpg" data-pswp-width="400" data-pswp-height="200">
<img src="./img/001.jpg">
</a>
</div>
<div class="img">
<a href="./img/002.jpg" data-pswp-width="400" data-pswp-height="200">
<img src="./img/002.jpg">
</a>
</div>
<div class="img">
<a href="./img/003.jpg" data-pswp-width="400" data-pswp-height="200">
<img src="./img/003.jpg">
</a>
</div>
</div>
<div id="gallery_2" class="gallery">
<div class="title">スワイプ不可(個別表示)</div>
<div class="img">
<a href="./img/001.jpg" data-pswp-width="400" data-pswp-height="200">
<img src="./img/001.jpg">
</a>
</div>
<div class="img">
<a href="./img/002.jpg" data-pswp-width="400" data-pswp-height="200">
<img src="./img/002.jpg">
</a>
</div>
<div class="img">
<a href="./img/003.jpg" data-pswp-width="400" data-pswp-height="200">
<img src="./img/003.jpg">
</a>
</div>
</div>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/photoswipe/5.4.4/photoswipe.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/photoswipe/5.4.4/umd/photoswipe.umd.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/photoswipe/5.4.4/umd/photoswipe-lightbox.umd.min.js"></script>
<script>
const lightbox_1 = new PhotoSwipeLightbox({
gallery: '#gallery_1',
children: 'div.img',
pswpModule: PhotoSwipe
});
lightbox_1.init();
const lightbox_2 = new PhotoSwipeLightbox({
gallery: '#gallery_2 a',
pswpModule: PhotoSwipe
});
lightbox_2.init();
</script>
<style> img{ width: 200px; } a{ text-decoration: none; } .gallery{ margin-bottom: 20px; } .title{ font-weight: bold; } </style> <div id="gallery_1" class="gallery"> <div class="title">スワイプ可能(スライダー表示)</div> <div class="img"> <a href="./img/001.jpg" data-pswp-width="400" data-pswp-height="200"> <img src="./img/001.jpg"> </a> </div> <div class="img"> <a href="./img/002.jpg" data-pswp-width="400" data-pswp-height="200"> <img src="./img/002.jpg"> </a> </div> <div class="img"> <a href="./img/003.jpg" data-pswp-width="400" data-pswp-height="200"> <img src="./img/003.jpg"> </a> </div> </div> <div id="gallery_2" class="gallery"> <div class="title">スワイプ不可(個別表示)</div> <div class="img"> <a href="./img/001.jpg" data-pswp-width="400" data-pswp-height="200"> <img src="./img/001.jpg"> </a> </div> <div class="img"> <a href="./img/002.jpg" data-pswp-width="400" data-pswp-height="200"> <img src="./img/002.jpg"> </a> </div> <div class="img"> <a href="./img/003.jpg" data-pswp-width="400" data-pswp-height="200"> <img src="./img/003.jpg"> </a> </div> </div> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/photoswipe/5.4.4/photoswipe.min.css"> <script src="https://cdnjs.cloudflare.com/ajax/libs/photoswipe/5.4.4/umd/photoswipe.umd.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/photoswipe/5.4.4/umd/photoswipe-lightbox.umd.min.js"></script> <script> const lightbox_1 = new PhotoSwipeLightbox({ gallery: '#gallery_1', children: 'div.img', pswpModule: PhotoSwipe }); lightbox_1.init(); const lightbox_2 = new PhotoSwipeLightbox({ gallery: '#gallery_2 a', pswpModule: PhotoSwipe }); lightbox_2.init(); </script>
所感
jQuery不要且つスワイプ可能ということでLightboxの上位互換っぽい。しばらくはこちらを試していきたいところ。
関連記事
-
-
バニラJS対応(jQuery非依存)の画像遅延読み込みライブラリ「lazysizes」の利用方法
あるサイトのコーディングデータを貰った際に「lazysizes」というJavaS ...
-
-
「slick」でarrows(次に進む・前に戻るボタン)を設定しても表示されない場合の対応方法
「slick」で画像スライダーを表示する際にarrows(次に進む・前に戻るボタ ...
-
-
JavaScriptで画像読み込み完了のタイミングを検知する「imagesLoaded」ライブラリの利用方法
大き目のサイズの画像をページに設置すると読み込み完了まで時間がかかる。その画像が ...
-
-
JavaScriptでダミー画像(プレースホルダー画像)を表示する「Holder.js」ライブラリの利用方法
サイトの開発段階で「本番用の画像はまだ用意できていない」等の理由によりダミー画像 ...
-
-
javascriptで画像を取り扱う際の注意
javascriptで画像を取り扱う際に、 ちゃんと要素を指定しているのにも関わ ...