NagiSeriesNagiSwipe
NagiSwipe
JS と CSS の 2 ファイルを読み込むだけで動く、軽量な画像ポップアップギャラリー・ライブラリです。モバイルファースト、タッチ操作の快適さを目指しています。デモで、スワイプやズームを試せます。
特徴#
- ドロップイン導入: JSとCSSを読み込むだけで、ページ内の画像リンクを自動的にギャラリー化します。
- モバイル最適化: スワイプ、ピンチズーム、ダブルタップに対応。
- 軽量・高速: 依存ライブラリなし。
- スムーズな操作感: サムネイルから拡大して開き、サムネイルへ縮んで閉じる。スワイプ中は前後の画像も指に追従。
- 慣性スクロール: ズーム中は指を離しても滑り、画像の端で跳ね返る。素早く払えば短い距離でもページ送り。
- サムネイル先出し: 高画質版が届くまではページ上のサムネイルを表示。前後の画像も先に読み込み。
- キャプション標準搭載: 画像の
altなどを画面下部に表示。 - 安心設計: ブラウザの「戻る」(マウスの戻るボタンやスワイプバックを含む)でビューアーだけを閉じる。自動DOM生成。
導入方法#
HTMLの <head> 内で以下のファイルを読み込んでください。
CDN経由 (推奨)#
jsDelivr を利用して高速に配信されます。以下の URL をコピーしてください(いつも最新版の URL が書いてあります)。
<!-- CSS -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/Lichiphen/NagiSwipe@ab44ada/NagiSwipe-main.css">
<!-- JavaScript -->
<script src="https://cdn.jsdelivr.net/gh/Lichiphen/NagiSwipe@ab44ada/NagiSwipe-main.js"></script>
※ @ の後ろ(@93db749 など)はファイルのバージョンを表す値で、NagiSwipe を更新するとこの README の値も新しくなります。URL を貼り直すまでは、今のバージョンのまま表示が変わりません。@v1.4.0 のようにリリースの番号でも指定できます。常に最新の main ブランチを使いたい場合は @main にしてください(jsDelivr で最大 12 時間、ブラウザで最大 7 日、古いファイルが残ることがあります)。
使い方#
ページ内の <a href="image.jpg"> のような形式のリンクが自動的に検出され、クリック時にギャラリーが開きます。
キャプション(v1.1.0〜)#
画像を開くと、画面下部にキャプションを表示します。次の順で最初に見つかったものを使います。
- リンクの
data-ns-caption(空文字を指定するとキャプションなし) - リンクの
data-caption - サムネイル
<img>のalt - リンクの
title - サムネイル
<img>のtitle - リンクを含む
<figure>の<figcaption>
<a href="photo.jpg"><img src="photo-thumb.jpg" alt="夕暮れの海"></a>
テキストとして表示するので、alt に HTML が含まれていても解釈されません。ズーム中は自動で隠れます。
オプション#
NagiSwipe.init({
caption: true, // 下部キャプションを表示(false で無効)
counter: true, // 左上の「3 / 12」表示(false で無効)
zoomAnimation: true, // サムネイルから拡大して開く / 縮んで閉じる(false でフェード)
history: true // ブラウザの「戻る」でビューアーを閉じる(false で無効)
});
OS の「視差効果を減らす」設定(prefers-reduced-motion)が有効な場合は、拡大アニメーションの代わりにフェードになります。
画像サイズの指定(任意)#
指定しなくても動きますが、リンクに実画像の幅と高さを書いておくと、読み込み前から正しい大きさで表示できます。
<a href="photo.jpg" data-ns-width="3000" data-ns-height="2000"><img src="photo-thumb.jpg" alt="…"></a>
てがろぐで使う#
てがろぐ では、スキンのファイルを書き換えなくても、管理画面で設定するだけで NagiSwipe を使えます。
- てがろぐの管理画面で [設定] → [システム設定] → 【画像拡大スクリプトの選択】 を開きます。
- 「他のスクリプトを使う:URLを指定」を選び、次の 2 つをコピーして貼り付け、保存します。
- 「JavaScriptのURL」欄:
https://cdn.jsdelivr.net/gh/Lichiphen/NagiSwipe@ab44ada/NagiSwipe-main.js - 「CSSのURL」欄:
https://cdn.jsdelivr.net/gh/Lichiphen/NagiSwipe@ab44ada/NagiSwipe-main.css
- 「JavaScriptのURL」欄:
これで、投稿の画像をクリックすると NagiSwipe で大きく表示されます。
漫画ビューアー(NagiManga)も使う場合 は、同じ「JavaScriptのURL」欄で、NagiSwipe の URL の うしろに半角スペースを 1 つ入れて、NagiManga の URL を続けて書きます(1 行のまま続けます。「CSSのURL」欄はそのままで大丈夫です)。
https://cdn.jsdelivr.net/gh/Lichiphen/NagiSwipe@ab44ada/NagiSwipe-main.js https://あなたのサイト/nagimanga/viewer/NagiManga.js
あわせて、画像のない投稿でも 漫画を開けるように設定します。てがろぐは、画像のない投稿のページでは上の欄のファイルを読み込まないためです。[設定] → [ページの表示] → 【投稿本文の表示/URL処理】 の「▼画像URLを画像として埋め込む表示」にある 「画像リンクに独自のclass属性値を追加する」 にチェックを入れ、class=" と " の間の欄に nagimanga と入力して保存します。
てがろぐに漫画を載せる方法は、manga/README.md の「てがろぐに載せる」 を見てください。
NagiMemo(てがろぐ用のスキン)でも同じ方法で使えます。