[JS]コンテンツの見出しを目次にし、スクロールしてもサイドバーに固定表示されるナビゲーション -Progress Nav
Post on:2017年2月8日
コンテンツの見出しを目次代わりにし、スクロールしてもサイドバーに固定表示されるナビゲーションを実装するJavaScriptのライブラリを紹介します。
ページのスクロールに合わせて、ナビゲーションの現在位置はアニメーションで移動します。
Progress Navのデモ
去年あたりから、このタイプのナビゲーションが増えてきました。
実際の動作は、下記のデモページでご覧ください。
現在位置を示すSVGで実装されており、表示されているコンテンツに合わせてアニメーションで移動します。
表示されているコンテンツすべてにラインを適応
Progress Navの使い方
Step 1: 外部ファイル
当スタイルシート・スクリプトを外部ファイルとして記述します。
1 2 3 4 5 6 7 8 9 10 |
<head> <link href="normalize.css" rel="stylesheet" type="text/css" /> <link href="style.css" rel="stylesheet" type="text/css" /> </head> <body> ... コンテンツ ... <script src="script.js"></script> </body> |
Step 2: HTML
ナビーションはリスト要素で、ハイライトをSVGで実装します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
<body> <nav class="toc"> <ul> <li><a href="#lv1-01">大見出し</a></li> <li> <a href="#lv1-02">大見出し</a> <ul> <li><a href="#lv2-21">小見出し</a></li> <li><a href="#lv2-22">小見出し</a></li> <li><a href="#lv2-23">小見出し</a></li> <li><a href="#lv2-24">小見出し</a></li> </ul> </li> <li> <a href="#lv1-03">大見出し</a> <ul> <li><a href="#lv2-31">小見出し</a></li> <li><a href="#lv2-32">小見出し</a></li> <li><a href="#lv2-33">小見出し</a></li> </ul> </li> </ul> <svg class="toc-marker" width="200" height="200" xmlns="http://www.w3.org/2000/svg"> <path stroke="#444" stroke-width="3" fill="transparent" stroke-dasharray="0, 0, 0, 1000" stroke-linecap="round" stroke-linejoin="round" transform="translate(-0.5, -0.5)" /> </svg> </nav> ... コンテンツ ... </body> |
sponsors