縦長HTML文書をスライドブロック単位で扱う、依存なし単一ファイルのJSライブラリ。
各スライドを section.slide-block で囲み、ライブラリを読み込むだけ。
<section id="block1" class="slide-block">
<h1>タイトル</h1>
<p>本文</p>
</section>
<script src="slideblock.js"></script>
ブロック内には自由にHTMLを書ける。
手動初期化でオプションを変更する場合。
SlideBlockJS.init({
container: document.body,
snap: true,
keyboard: true,
toc: true
});
| キー | 動作 |
|---|---|
| → / ↓ | 次のブロックへ |
| ← / ↑ | 前のブロックへ |
画面右に固定表示される目次から、任意のブロックへジャンプできる。目次はこのページのように自動生成される。
かつて、ひとつのページには収まりきらぬ想いを、 無理やり折り畳んで押し込めていた時代があった。 それは決して悪意あってのことではない。 ただ、ページというものには縁があり、縁の向こうには行けぬという、 ごく単純な、しかし逃れがたい掟が敷かれていたからである。
その掟のもとでは、語るべき言葉は間引かれ、 伝えたかった具体例は泣く泣く別のページへ引き離され、 文字はページの余白と交渉を重ねた末に、 次第に体を小さく折り曲げていくことを強いられた。 まるで、大きな家具を狭い部屋に運び込むために、 分解して、また組み立て直すような作業であった。
けれど、ここで少し立ち止まって考えてみたい。 そもそも「一枚に収める」という制約は、 誰のためのものであったのだろうか。 発表者のためか、聴衆のためか、 それとも、単にページという器の形状に、 内容の方が律儀に付き合ってきただけなのではないか。
もし、器の形に内容を合わせるのではなく、 内容の自然な長さに、器の方が付き合ってくれるとしたら。 そのとき、話し手はもはや、 言葉を圧縮するための技巧に頭を悩ませる必要はなくなる。 削ぎ落とすべきかどうかを迷って夜を明かすこともない。 なぜなら、器はどこまでも、静かに、 下へ、下へと伸びていってくれるのだから。
想像してみてほしい。一本の巻物を。 巻物には、ページの切れ目というものがない。 読み手はただ、手元でくるくると巻いていくだけで、 次の景色、次の話題へと移っていく。 区切りは、あるにはあるのだが、 それは壁ではなく、ただの目印のようなものにすぎない。
さて、今あなたが読んでいるこの段落もまた、 そうした巻物の一部である。 これは特別に長く書かれたブロックであり、 おそらく画面一枚には到底収まりきらないだろう。 しかし、それは何ら問題にはならない。 なぜと問われれば、答えはいつも、拍子抜けするほど単純だ。
画面に入らない分だけ、指先が、あるいは矢印キーが、 すこしだけ長く動けばよいだけのことなのである。 文字を小さくする必要もない。段落を泣く泣く削る必要もない。 伝えたいことがまだ残っているなら、 ただ書き続ければよい。そして読み手は、 ただ、下へ向かってスクロールを続ければよい。
これこそが、遠回しに、もったいぶって、 ここまで長々と述べてきたことの、 ようやくの結論というものである。 ページに収まらない内容があっても、何も恐れることはない。 ——ただ、スクロールするだけでよいのだ。
詳細は spec.md と README.md を参照。