これは、 Pinterestが独自のモーダルルックを実現する方法と、それを複製する方法についての私の評価です。
何よりもまず、URLリンクの処理はサーバー側で分析され、リンクがPinterestサイト自体から発信されているかどうかが確認されます。とはいえ、ブラウザのURLアドレスバーと履歴は動的に作成され、訪問者によって実際に実行されることはありません。
明確にするために:アドレスバーは、モデル体験が行われているときの実際の場所ではありません!これを証明するには、Pinterestオブジェクトをクリックし、モーダルビューでアドレスバーに移動し、そのURLの場所の最後にマウスカーソルを置いて、Enterキーを押します。次に、その場所にリダイレクトします。ホームページを離れたことがないことをさらに確認するには、Firebug/Firefoxの[ネット]タブまたはChromeの[ネットワーク]タブを表示します。
次の方法は、Pinterestがホームページにアクセスしたときに実行する方法です。生意気に見てください:
- ホームページを表示します。
- 訪問者がPinterestオブジェクトをクリックするのを待ちます。
- クリックされたオブジェクトには、直接アクセスするための固有のWebページがあります。
- クリックされたオブジェクトはフォローされません。
- ブラウザバーには、このクリックされたオブジェクトの場所が表示されますが、実際にはそこにはありません。
- ブラウザの履歴は、JavaScrictまたはサーバーサイド処理を介してクリックされた場所を受け取ります。
- AJAXは、オブジェクトのページからデータの一部(IDを介したモーダルの肉)をロードします。HTTPRequestを介して検証可能。
- メインページでクリックされたオブジェクトが消えました(これはInspect Elementで確認できます)。
- AJAXプロセスは、そのデータを画面の中央に白いオーバーレイで配置します。
- AJAXの「モーダル」データが。を介してスクロールイベントを受信している間、メインページのスクロールは無効になります
#zoomScroll
。
- モーダルバックグラウンドをクリックすると、オブジェクトがWebページに戻り、URLアドレスバーが「視覚的に」元に戻ります。
Pinterestが使用するモデル効果を再現するために、HTML/iframedコンテンツをサポートするさまざまなライトボックスを調査します。上記のプロセスの番号付きの手順を確認すると、Webサイトの目的の外観を実現する方法がわかります。
重要なステップは、すべてのビューポートを使用するようにライトボックスを設定し、必要に応じてライトボックスのCSSルールを変更して、閉じるボタンのスキングラフィックスと境界線を回避することです。
ライトボックスは、 AJAXによって入力された単一のテンプレートファイルを使用できます。div
上記div
は、半透明の背景のビューポートの水平方向の中央に配置されます。iframe自体は透過的であるため、基になるホームページが透けて見えます。
Pinterestに似たいくつかのスクロールルールを投入すると、適切なクローンメソッドを使用できます。
PinterestのWebページのレイアウトを複製する限り、このSOAnswerを参照してください。
テキストリンク、サムネイル、または両方の組み合わせであるカスタムPinterestボタンを使用するには、このSOAnswerを参照してください。
jsFiddleチュートリアルを使用したデータスクレイピングPinterestプロセスについては、このSOAnswerを参照してください。