32 votes

Comment reproduire l'effet modal du site Web Pinterest?

Je voudrais créer le même effet que sur Pinterest lorsque vous cliquez sur une image: une fenêtre modale s'ouvre mais l'URL de la page change également. Cette dernière partie est d'une importance cruciale: l'URL dans la barre d'adresse du navigateur a changé, mais nous avons encore voir la page d'origine contenu dans le fond (c'est pourquoi je l'appelle un modal, même si elle peut être beaucoup plus compliqué que cela). Je suis idéalement à la recherche pour un jQuery solution.

[modifier] Je dois ajouter que, bien sûr, le Pinterest de comportement à ne pas rompre le bouton Retour qui est, elle aussi, essentielle.

50voto

arttronics Points 8520

C'est mon évaluation de la façon dont Pinterest réalise qu'il est unique modal chercher et comment le reproduire.

D'abord et avant tout, un Lien URL de la manipulation est côté serveur analysées pour voir si le lien est originaire de l'Pinterest site lui-même. Cela dit, les Navigateurs Barre d'Adresse URL et l'Histoire sont créées dynamiquement et pas réellement effectuées par le visiteur.

Pour clarifier: La barre d'adresse n'est pas l'endroit de votre à quand un modèle de l'expérience est en train de prendre place! Pour prouver cela, cliquez sur Pinterest objet et quand en modal vue aller à la Barre d'Adresse et à la fin de l'URL de l'emplacement placez votre curseur de la souris , puis cliquez sur entrée. Vous serez alors rediriger vous-même à cet endroit! Pour une vérification supplémentaire que vous n'avez jamais quitté la page d'accueil, afficher l' Onglet réseau de Firebug/Firefox ou Réseau de l'Onglet dans google Chrome.

La méthode suivante est ce que Pinterest est en train de faire lors de la visite de la page d'accueil. S'il vous plaît consulter avec précaution:

  1. Afficher La Page D'Accueil.
  2. D'attente pour les visiteurs à cliquer sur Pinterest objet.
  3. L'objet cliqué a une unique page web pour un accès direct.
  4. L'objet cliqué n'est pas suivie.
  5. La barre du navigateur remplira lui-même avec cette cliqué objets emplacement, mais vous n'êtes pas à la réalité.
  6. L'historique du navigateur recevrez cliqué sur l'endroit par l'intermédiaire JavaScrict ou de traitement Côté Serveur.
  7. AJAX va charger un morceau de données (de la viande de modal par ID) de l'objet de la page. Vérifiable via HTTPRequest.
  8. L'objet cliqué sur la page principale a disparu (Ce qui peut être contrôlée à l'aide d'Inspecter l'Élément).
  9. L'AJAX processus de placer ce morceau de données dans le centre de l'écran avec une superposition de couleur blanche.
  10. Le défilement de la page principale est désactivée lors de l'AJAX "modal" de données reçoit des événements de défilement via #zoomScroll.
  11. En cliquant modal de fond renvoie l'objet de la page web et l'URL de la Barre d'Adresse est "visuellement" est revenue.

Pour recréer l'effet de modèle Pinterest utilise, je voudrais étudier les différents lightbox est que le support de HTML/iframed de contenu. Revoir les étapes numérotées processus ci-dessus va vous montrer comment obtenir le look désiré pour votre site web.

Une étape clé serait de définir la lightbox pour utiliser la totalité de la fenêtre d'affichage, la modification de la lightbox CSS règles, si nécessaire, pour éviter tout Bouton de fermeture de la peau des graphiques et des frontières.

La visionneuse peut alors utiliser un seul fichier de modèle avec un div c'est peuplée par AJAX. Dit - div est centrée horizontalement dans la fenêtre d'affichage sur un fond semi-transparent. L'iframe lui-même est transparent, ce qui permettrait à la sous-jacentes de la page d'accueil de montrer à travers.

Jeter un peu de défilement des règles similaires à Pinterest et que vous avez un décent clone de la méthode à utiliser.

Aussi loin que dupliquer le Pinterest de la Page web Mise en page, voir cette SORTE de Réponse.

Pour utiliser les Bouton Pinterest qui est du texte-lien, vignette, ou un mixte des deux, voir cette SORTE de Réponse.

Pour les Données de Gratter Pinterest processus avec jsFiddle tutoriel, voir cette SORTE de Réponse.

10voto

Jspies Points 91

Je n'ai pas assez de rep pour commenter la réponse d'arttronics mais je voulais ajouter ceci:

La barre de navigateur est manipulée dans l'historique plus récent de HTML 5. Ce cas particulier peut être fait avec:

 window.history.pushState({}, "Some Title", "the url")
 

https://developer.mozilla.org/en/DOM/Manipulation_du_browser_history/#The_pushState().C2.A0method

1voto

zod Points 4034

Ce mec appeler ce style pinterest

mais l'ouverture de la fenêtre modale est différent

http://codecanyon.net/item/jquery-pinterest-style-gallery-plugin/2463876

Si vous pouvez ajouter de la superposition de couleur blanche, il semble .

regardez ce trop

http://hasin.me/2012/03/10/building-a-nice-image-gallery-like-pinterestfriendsheet-using-facebook-graph-api-and-lightbulb/

ce trop

http://www.asual.com/jquery/address/

1voto

r0m4n Points 2119

Voici un exemple avec un peu de code avec JQuery boîte de dialogue modale.

http://jsfiddle.net/aDCQL/2/

C'est vraiment juste une preuve de concept et pourrait éventuellement être étendu sur...

L'utilisation d'un hachage de la bibliothèque, vous pouvez exécuter certaines fonctions basées sur une URL et de fournir des liens directs vers les mêmes fonctions. Cette bibliothèque prend en charge tous les navigateurs, nous nous soucions.

Chemin de routage bibliothèques existent aussi ce aussi de simplifier certaines de ces définitions de chemin.

https://github.com/cowboy/jquery-hashchange

0voto

Praveen Kumar Points 29309

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X