Facebook ニュース フィードの写真をクリックすると、ウィンドウの位置が変わり、写真が表示されますが、前のページのコンテンツがまだ写真の後ろにあることに気付きました。フォトビューアーの背景が透明なので見えます。
これはどのように達成できますか?
Facebook ニュース フィードの写真をクリックすると、ウィンドウの位置が変わり、写真が表示されますが、前のページのコンテンツがまだ写真の後ろにあることに気付きました。フォトビューアーの背景が透明なので見えます。
これはどのように達成できますか?
上手。URLは次のように変更されます:/photo.php?fbid=10150643780577073&set=a.446526812072.240769.709452072&type=1&theater
クエリ文字列には、ユーザーがどのページから来たかを知るのに十分な情報があります。この情報は、写真を前景に表示し、元のページを背景に含めるために使用されます。したがって、両方のページで、Facebookのバックエンドコードを使用してhtmlフロントエンドを生成し、photo.phpページの場合は、前景の画像と必要なcssおよびスクリプトを追加します。
将来的には、HTML5 の history API を使用する予定です。ただし、ブラウザー間の互換性と後方互換性のためにhistory.jsライブラリを使用してください。
HTML5 より前の場合、ページを更新せずに場所を設定する方法は、アンカー位置に移動したかのように、URL に # アンカー位置を追加することです (伝統的に、ページ上の特定の段落に移動してリンクするために使用されます)。 )、例えばurl/to/page#someposition
。
これは、アンカーでページの状態を表すことに一般化されます。たとえば、gmail の特定のメッセージには URLhttps://mail.google.com/mail/?shva=1#inbox/2h42c4ahe7fge7
などがあります。
history.js を使用している場合は、広くサポートされるようになったときに、pushState などに簡単にアップグレードできるはずです。