同じ4枚の画像から2つのマンガビューアを作る ― JSONでページ送りと縦読みを切り替える

プログラミング・Web開発カテゴリを表すパンダのイラスト プログラミング・Web開発

この記事について
この記事は、生成AIを活用した自動生成フローで作成しています。Daily-Code-Samplesで公開している横向きページ送り版と縦読み版の実装、JSON、Character Sheetの実ファイルを確認し、同じコンテンツを異なるUIで再利用する考え方を整理しています。

検証ステータス:🧪 Daily Code実装済み・GitHub Pages公開済み/横向き・縦読みロジック確認済み/スマホ実機表示は未確認

マンガをWebに載せるだけなら、画像を上から4枚並べれば完成です。

でも、画像そのものと「どう読ませるか」を分けておくと、同じ4枚をPC向けのページ送りにも、スマホ向けの縦読みにも再利用できます。

今回のポイントはビューアの見た目より、コンテンツをJSONで持ち、表示側だけを変えたことです。

まず動いているものを見る

横向き版は1枚ずつ表示し、「前へ」「次へ」でページを切り替えます。縦読み版は同じ4枚を上から順に並べます。

データは共通、見せ方だけ変える

flowchart TD
    A[4枚のマンガ画像] --> B[JSON: ページ情報]
    B --> C{表示方法だけ変える}
    C --> D[PC向け: 1枚ずつ表示]
    C --> E[スマホ向け: 全ページを縦に表示]

横向き用とスマホ用に、別々の画像セットを作っているわけではありません。

元になる画像とページ情報は共通で、JavaScript側の表示方法だけを変えています。

1ページ分の情報をJSONで持つ

JSONには画像ファイル名だけでなく、タイトル、説明、代替テキスト、タグなども持たせます。

{
  "image": "./pages/page-02.svg",
  "alt": "画像と付帯データを分けて管理するPapanda",
  "title": "2ページ目:画像と付帯データを分けて持つ",
  "caption": "画像・タイトル・説明を1ページ分のデータとして扱う",
  "tags": ["JSON", "メタデータ"]
}

HTMLに説明文を直接埋め込むより、「1ページ分の情報」をデータとして管理した方が、別のUIでも同じ内容を使いやすくなります。

横向き版と縦読み版は何が違う?

項目 ページ送り版 縦読み版
読み方 前へ/次へ 下へスクロール
同時表示 基本1ページ 全ページ
中心となる考え方 現在位置を持つ ページを順番に並べる
PC 見やすい 閲覧可能
スマホ 操作が必要 自然に読みやすい
元データ 同じ画像・同じページ情報を再利用

JavaScript側で変わるのは表示方法

ページ送り版は、「今どのページを表示しているか」という番号を持ち、その位置のデータだけを描画します。

縦読み版は「現在位置」を持たず、JSONにあるページを順番に画面へ追加します。

完成コードはブログ本文へ重複して載せず、Daily Code側へ集約します。

ブログは「なぜそう作るのか」、Daily Codeは「どう書けば動くのか」という役割分担にします。

マンガ以外にも使える

データと表示を分ける考え方は、マンガ専用ではありません。

用途 ページデータに持たせるもの 表示例
作業手順書 画像、手順、注意、担当 1手順ずつ/縦一覧
設備点検 写真、確認項目、正常例 現場スマホ向け縦表示
教育コンテンツ 図、説明、設問 スライド型/復習一覧
製品紹介 写真、特徴、リンク カルーセル/一覧
社内マニュアル 画面キャプチャ、操作、補足 PC手順/スマホ手順

コンテンツをデータとして持っておけば、閲覧環境や用途に合わせて表示方法をあとから変えられます。

キャラクターの正本も分けて管理する

今回のPapandaは papanda925 Character Sheet v1 を正本にしています。

papanda925 Character Sheet v1

マンガのページデータだけでなく、キャラクター側にも正本を置くことで、別の記事や別の生成でも同じ基準へ戻れます。

4枚のマンガ画像

1 / 4 ― ブラウザでページを切り替える

1ページ目:ブラウザでページを切り替えるマンガビューア

2 / 4 ― 画像と付帯データを分けて持つ

2ページ目:画像と付帯データを分けて持つ

3 / 4 ― 前へ・次へでページを切り替える

3ページ目:前へ次へでページを切り替える

4 / 4 ― GitHub Pagesで公開する

4ページ目:GitHub Pagesで公開する

次に改善するなら

  • スマホ実機での表示確認
  • スワイプ操作
  • キーボード操作とフォーカス管理
  • ページ数が多い場合の遅延読み込み
  • JSON読み込み失敗時のエラー表示
  • alt・ボタン・読み上げ順などのアクセシビリティ

これらの実装Tipsは、記事本文を長いコード置き場にするのではなく、Daily Code側へ還元していきます。

まとめ

同じ4枚の画像でも、データと表示を分けておけば、PC向けページ送りとスマホ向け縦読みを別々に作り直さずに使い分けられます。

データは共通、見せ方だけ変える。

小さなマンガビューアで試した考え方ですが、作業手順書、設備点検、教育コンテンツ、社内マニュアルにもそのまま応用できます。

関連リンク・実装

この記事の更新履歴

この記事は、生成AIを活用した自動レビュー・更新フローにより内容を見直し、必要な修正を反映しています。

2026年9月13日

  • 追加 横向き4ページ版とスマホ縦読み版のライブデモ、GitHub上の実装ファイルへの導線を整理しました。
  • 追加 マンガ以外にも作業手順書、設備点検、教育コンテンツ、社内マニュアルへ応用できる利用例を追加しました。
  • 変更 ブログ本文をコード解説中心から「JSONでデータと表示を分離する考え方」中心へ再構成し、完成コードはDaily Code側へ集約しました。
  • 変更 PapandaのCharacter Sheet正本を現在のGitHub上の正本画像へ統一し、記事から参照できるようにしました。

文書情報

記事タイトル
同じ4枚の画像から2つのマンガビューアを作る ― JSONでページ送りと縦読みを切り替える
作成日
更新日
Source URL
https://papanda925.com/?p=15418

ライセンス: 本記事のうち、当サイトが権利を有する本文・自作図表は、特記なき限り CC BY 4.0 で利用できます。生成AIを活用して作成・編集した内容を含みます。コードについて、別途ライセンス表示またはリンク先GitHubリポジトリのライセンスがある場合は、その条件を優先します。引用・第三者資料・画像・商標等は本ライセンスの対象外です。 利用ポリシー

タイトルとURLをコピーしました