初めてのシングルページ アプリケーションを作成しようとしています。アイデアは、多くの<div>
タグを含む 1 つの HTML ファイルを持つことです。ここで、それぞれ<div>
が単一の Web「ページ」を表します。次に、アプリケーション<div>
は一度に 1 つだけを表示し、他のものを非表示にします。このようにして、ユーザーがアプリをナビゲートすると、実際にはさまざまな「ページ」div を表示/非表示にし、単一ページ アプリのような錯覚を与えます。
追加の要件は次のとおりです。
- これは HTML5 アプリです
- 各ページ div は、独自のブックマーク可能な URL ( 、 など) もマップする必要があり
http://myapp.example.com/#fizz
ますhttp://myapp.example.com/#buzz
。 - 各ページ div を焦がすことはブックマーク可能です。アプリは HTML5 履歴 API で動作する必要があります
ルーティングには Crossroads を使用し、履歴には Hasher を使用することにしました。もう 1 つの有力な候補は AngularJS でしたが、AngularJS は私がここでやろうとしていることに対して重量が重すぎて学習曲線が急勾配であると思われたため、最終的には AngularJS を使用しないことにしました。
これまでのところ、私のプロジェクトには次のディレクトリ構造があります。
myapp/
index.html
myapp.js
myapp.css
signals.min.js <-- Required by both Crossroads and Hasher
crossroads.min.js
hasher.min.js
index.html
my 、myapp.css
およびmyapp.js
ファイルを含む JSFiddle は次のとおりです。
これは、ユーザーが「ナビゲーション バー」 (「ホーム」、「概要」、「連絡先」) のいずれかのリンクをクリックすると、その特定のページを表す「ページ」(div) に移動できるという考え方です。ご覧のとおり、デフォルトの「ページ」は である必要がありますHOME
。これは、表示できる唯一の div であることを意味します。ただし、すべてのページ div が表示され、非表示になっているものはありません。そして、ページ div を正しく表示/非表示にするまで、ルーティング/履歴機能を実際にテストすることはできません。Crossroads/Hasher をどうにか間違って設定しましたか?