OSS探訪GitHubでログイン

画像ギャラリーをlightboxで拡大表示し、swipe・zoom・dynamic importをモバイルとデスクトップで扱う

スコアの見方

OSS規模スコアはStars・Watchers・Forks・Contributorsを対数圧縮して重み付けした現在の規模指標(上限なし)です。発掘スコアは現在のOSS規模スコアから発掘時点のOSS規模スコアを引いた値、更新ペースは直近30日Commit数、成長モメンタムは直近の観測期間におけるOSS規模スコア差、OSS健全度は取得できた更新状況・Community Health・Releaseの0〜100評価です。

Stars
25,270
主要言語
JavaScript
ライセンス
MIT
リポジトリ最終更新
2025/12/04
ページ内ナビ

概要

PhotoSwipeはモバイルとデスクトップ向けのJavaScript画像ギャラリー・lightboxです。Core、Lightbox、CSSを分離した構成で、サムネイルから大きな画像を開き、swipeやzoomを含む閲覧UIをフレームワークに依存せず実装できます。

特徴と向いている用途

公式資料に基づく紹介・実機未検証 · 内容確認日:

主な特徴

LightboxとCoreを分離して必要な時だけgallery本体を読み込む

推奨構成ではPhotoSwipeLightboxがギャラリーのclickを監視し、pswpModuleからCoreをdynamic importします。初期bundleを抑えながらギャラリーを開く時だけ本体を読み込めます。

出典:[2]

既存のlink・thumbnail markupをgallery sourceとして利用する

ギャラリーcontainerとchildren selectorを指定し、各linkへ画像URLとdata-pswp-width・data-pswp-heightを持たせます。サムネイル画像も同じlink内へ配置できます。

出典:[2]

レスポンシブ画像とprogressive enhancementを前提に構成する

公式guideはレスポンシブ画像の利用を推奨し、PhotoSwipeが動かない場合でも画像linkからcontentへ到達できるprogressive enhancementを前提にしています。

出典:[2]

向いている用途

写真ギャラリー・portfolio・商品画像をtouch操作とdesktopの両方で見せたい場合に向く

thumbnail一覧から拡大表示へ遷移し、swipe・zoomを使った閲覧体験を共通化したいサイトやWebアプリケーションに適します。

出典:[1][2]

導入前の確認

各画像のwidthとheightを事前に用意する

PhotoSwipeは各画像の寸法を事前に必要とし、linkへdata-pswp-widthとdata-pswp-heightを指定する構成を案内しています。動的contentでは寸法情報の取得方法も設計してください。

出典:[2]

非常に大きな画像をそのまま表示せずレスポンシブ画像を用意する

公式guideは非常に大きな画像の表示向けではないと説明し、通常用途では最大3000x3000px程度を推奨しています。より大きな画像には別のtiling手法が必要です。

出典:[2]

参考にした公式資料

  1. [1]PhotoSwipe v5.4.4 README(2026-10-05)
  2. [2]PhotoSwipe v5.4.4 Getting Started(2026-10-05)
  3. [3]PhotoSwipe v5.4.4 package metadata(2026-10-05)
  4. [4]PhotoSwipe v5.4.4 release(2026-10-05)
  5. [5]PhotoSwipe MIT license(2026-10-05)
編集部からの補足

CoreとLightboxを分離し、利用者がgalleryを開いた時だけCoreをdynamic importできる設計が特徴です。画像のwidth/heightを事前に持たせる必要があるため、CMSやAPIからgallery dataを作る場合は寸法metadataの保持方法まで合わせて設計してください。

3ステップで試す

  1. 1

    PhotoSwipe 5.4.4を導入する

    確認対象のv5安定版を固定して導入します。

    npm install --save-exact photoswipe@5.4.4
  2. 2

    画像寸法を持つgallery markupを用意する

    各linkへ大きな画像のURLとdata-pswp-width・data-pswp-heightを設定します。

    <div id="my-gallery"><a href="large.jpg" data-pswp-width="1600" data-pswp-height="1200"><img src="thumb.jpg" alt=""></a></div>
  3. 3

    Lightboxを初期化する

    Lightboxから必要な時だけCoreを読み込み、galleryのlinkを拡大表示できるようにします。

    import PhotoSwipeLightbox from 'photoswipe/lightbox'; import 'photoswipe/style.css'; const lightbox = new PhotoSwipeLightbox({ gallery: '#my-gallery', children: 'a', pswpModule: () => import('photoswipe') }); lightbox.init();
公式READMEで確認

成長

成長の推移 · 直近30日

25,270 Stars

推移データを蓄積中です。

開発アクティビティ

直近90日・週次

Commit(直近30日)
0
Open PR
8

開発アクティビティを蓄積中です。

Built with

カテゴリとタグ

GitHubデータ

GitHubのデータGitHubの詳細データを見る

GitHub Topics

  • gallery
  • lightbox
  • image
  • javascript
Stars
25,270
Forks
3,271
Watchers
521
Open Issues
162
Contributors
70
所有者種別
User
主要言語
JavaScript
ライセンス
MIT
リポジトリ最終更新
2025/12/04

このOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。

情報の誤りを報告

掲載内容に誤りや古い情報があればお知らせください。

このページを読んで、次に何をすればよいか分かりましたか?