2.2.2 • Published 4 years ago

@dettalant/laymic v2.2.2

Weekly downloads
4
License
MIT
Repository
-
Last release
4 years ago

laymic - overlay comic viewer

オーバーレイ表示により設置するサイトを選ばない漫画ビューワーです。

「2p見開き横読み表示 <-> 縦読み表示」の切り替えにも対応。

使用方法

漫画ビューワー単体・javascriptのみで使用する場合はLaymicクラス。

一つのページに複数のビューワーを登録したい場合・htmlによるテンプレート記述を用いたい場合はLaymicApplicatorクラスの使用を想定しています。

commonjs形式でのLaymicクラス記述

const { Laymic } = require("laymic"); 

const pages = [
  "page0.png",
  "page1.png",
  "page2.png",
  "page3.png",
  "page4.png"
];

const laymic = new Laymic(pages, {
  // 原稿画像横幅
  pageWidth: 690,
  // 原稿画像縦幅
  pageHeight: 976,
})

// ここではbutton要素のクリックイベントに展開イベントを登録している
el.addEventListener("click", () => {
  laymic.open();
})

iife形式でのLaymicApplicatorクラス記述

<!-- ビューワー1 -->
<div class="laymic_template" data-viewer-id="laymic0">
  <img data-src="page0.png">
  <img data-src="page1.png">
  <img data-src="page2.png">
  ...以下ページを好きなだけ並べる
</div>
<button class="laymic_opener" type="button" data-for="laymic0">
  ここをクリックでlaymic0のビューワー展開
</button>

<!-- ビューワー2 -->
<div class="laymic_template" data-viewer-id="laymic1">
  <img data-src="page0.png">
  <img data-src="page1.png">
  <img data-src="page2.png">
  ...以下ページを好きなだけ並べる
</div>
<button class="laymic_opener" type="button" data-for="laymic1">
  ここをクリックでlaymic0のビューワー展開
</button>

<script src="laymic.iife.min.js"></script>
<script>
const applicator = new laymic.LaymicApplicator(".laymic_template", {
  // 原稿画像横幅
  pageWidth: 690,
  // 原稿画像縦幅
  pageHeight: 976,
})
</script>

api説明

こちらを参照

Laymicの引数型詳細

LaymicPages |名前|型|説明| |---|型|---| |pages|(string | Element)[]|表示する漫画ページセット| |thumbs|string[]|サムネイルとして表示する画像セット|

LaymicOptions

名前初期値説明
iconsアイコンを別のものに変更する。具体的な中身はViewerIconsを参照
stateNamesステート変化用クラス名を別のものに変更する。具体的な中身はLaymicStateClassNamesを参照
classNames各種クラス名を別のものに変更する。具体的な中身はLaymicClassNamesを参照
viewerId"laymic"インスタンスと紐付けられる文字列
pageWidth720原稿画像横幅
pageHeight1024原稿画像縦幅
vertPageMargin10縦読み時のページ間余白ピクセル数値
horizPageMargin0横読み時のページ間余白ピクセル数値
viewerPadding10漫画ページ表示コンテナ周囲の余白ピクセル数値
viewerDirection"horizontal"漫画を読み進める方向のデフォルト値。横読みなら"horizontal"、縦読みなら"vertical"
isLTRfalse左から右へと流れていく表示形式を取るならtrue
isVisiblePaginationfalseページ送りボタンを表示する設定
isFirstSlideEmptytrue横読み時一ページ目を空白として空ける設定
isAppendEmptySlidetrue横読み時 + ページ数が偶数の場合最終ページに空白を追加する
isInstantOpentruelocation.hashviewerIdが一致していた場合、ページ読み込み直後にビューワーを開く機能。falseで無効化
progressBarWidth"auto"進捗バーの太さを変更する。使用できる値は"auto", "none", "tint", "medium", "bold"の五つ

LaymicClassNames

書き出すのめんどくさいのでここ参照のこと

LaymicStateClassNames

名前初期値説明
active"laymic_isActive"汎用的なアクティブ時ステート
hidden"laymic_isHidden"汎用的な非表示時ステート
singleSlide"laymic_isSingleSlide"横読み時1p表示がなされている際に付与
showPreference"laymic_isShowPreference"設定画面展開中に付与
showThumbs"laymic_isShowThumbs"サムネイル表示展開中に付与
showHelp"laymic_isShowHelp"ヘルプ表示展開中に付与
fullscreen"laymic_isFullscreen"全画面表示時に付与
unsupportedFullscreen"laymic_isUnsupportedFullscreen"使用ブラウザがFullscreen APIに未対応の場合に付与
visibleUI"laymic_isVisibleUI"UI表示がなされている場合に付与
visiblePagination"laymic_isVisiblePagination"ページ送りボタン表示設定が有効な場合に付与
vertView"laymic_isVertView"縦読み時に付与
ltr"laymic_isLTR"isLTR設定が有効な場合に付与
mobile"laymic_isMobile"モバイル端末の場合に付与

ViewerIcons

ViewerIconsに指定する値は全てIconDataである必要あり

名前説明
close閉じるアイコン
fullscreen全画面化アイコン
exitFullscreen全画面終了アイコン
preference設定アイコン
showThumbsサムネイル表示アイコン
vertView縦読みアイコン
horizView横読みアイコン
checkboxOuterチェックボックス外側
checkboxInnerチェックボックス内部
showHelpヘルプ表示アイコン
zoomIn拡大アイコン
viewerDirectionヘルプ表示に用いられるページ読み方向アイコン
touchAppヘルプ表示に用いられるタッチアイコン
chevronLeftページ送り方向アイコンcss回転で向きを合わせるので左向きのみ用意

IconData

名前説明
idstringアイコンidとして使われる値
classNamestringアイコンに付与するクラス名
viewBoxstringアイコンのviewBox
pathDsstring[]アイコンのpath要素d属性に用いられる文字列配列

LaymicApplicatorOptions

名前初期値説明
templateSelector".laymic_template"読み取るlaymic templateを指定するセレクタ
openerSelector".laymic_opener"laymic openerを指定するセレクタ
defaultViewerId"laymic"viewerId値が指定されなかった際に用いられるデフォルト値

LaymicApplicatorが読み取るhtml固有の引数

html側に付与出来る引数は概ねLaymicOptionsと似ていますが、指定方法が異なっています。

また、iconsclassNamesstateNamesは指定できません。

laymic_template親要素に指定可能な設定値

名前説明
dirltr設定を有効にする(isLTRtrueである場合と同様)には"ltr"を指定
data-viewer-idviewerIdと同様
data-page-heightpageHeightと同様
data-page-widthpageWidthと同様
data-viewer-directionviewerDirectionと同様
data-is-visible-paginationisVisiblePaginationと同様
data-is-first-slide-emptyisFirstSlideEmptyと同様
data-is-append-empty-slideisAppendEmptySlideと同様
data-is-instant-openisInstantOpenと同様
data-vert-page-marginvertPageMarginと同様
data-horiz-page-marginhorizPageMarginと同様
data-viewer-paddingviewerPaddingと同様
data-progress-bar-widthprogressBarWidthと同様

laymic_template直下の子要素に指定可能な設定値

名前説明備考
data-srcsrc属性の代わりとして使用可能<img>要素にのみ付与可能
data-thumb-srcそのページのサムネイル画像を別途指定する

指定例

<div class="laymic_template" 
  dir="ltr"
  data-viewer-id="laymic0"
  data-viewer-direction="vertical"
  >
  <img data-src="page0.png">
  <img data-src="page1.png">
  <img data-src="page2.png">
</div>
<button class="laymic_opener" type="button" data-for="laymic0">
  ここをクリックでlaymic0のビューワー展開
</button>

laymicが追加するcss変数

css変数はどれもlaymicのroot要素(初期状態では.laymic_root)に追加されます。

変数名意味合い
--page-width現在ページ横幅
--page-height現在ページ縦幅
--page-max-width最大ページ横幅。ページがこれ以上の横幅になることはない
--page-max-height最大ページ縦幅。ページがこれ以上の縦幅になることはない
--page-scale-ratio現在のページ縮小比率。css scaleに用いるための変数
--progressbar-width進捗バーの太さ数値
--viewer-paddingビューワー余白数値
--js-vh正確なvh数値計算結果。少し古いandroid対応などのために用いる

laymicビューワー展開時のキーボードショートカット

共通

キー名効果
Escapeビューワー、展開中モーダル要素を閉じる
Shift + Space, PageUp前のページへ
Space, PageDown次のページへ
D縦読み/横読み切り替え
VビューワーUI表示切り替え
P設定画面表示切り替え
Fフルスクリーン切り替え
Tサムネイル画面表示切り替え
Hヘルプ表示切り替え
Zズーム切り替え(モバイルブラウザでは無効)
TabビューワーUIを表示(ブラウザデフォルトのフォーカス移動も行う)

横読み時

キー名効果
ArrowRight前のページへ
ArrowLeft次のページへ

横読みLTR設定時

キー名効果
ArrowLeft前のページへ
ArrowRight次のページへ

縦読みモード固有

キー名効果
ArrowUp前のページへ
ArrowDown次のページへ

ズーム中固有

キー名効果
ArrowUp上へ少しスクロール
ArrowDown下へ少しスクロール
ArrowLeft左へ少しスクロール
ArrowRight右へ少しスクロール
Shift + Space, PageUp上へ大きくスクロール
Space, PageDown下へ大きくスクロール