Autor Zpráva
JunekCZ
Profil
Dobrý den. Určitě všichni znáte televizní kanál DisneyChannel. Dnes bych se chtěl zeptat, jak se slidem změnit i obsah stránky.
Zde je příklad -> (Tato stránka).

Předem děkuji za odpověď, JunekCZ.
JunekCZ
Profil
Nebo by mi pomohlo ještě toto: http://www.lochy.cz/#!/Home. Když kliknete napříkald na "o mě" text vám odjede doleva a další přijede zprava.
juriad
Profil
Podívej se do kódu té druhé stránky.
Uvidíš tam v html body div.glob div.main div.center article#content ul hromadu položek. Každá položka je jednou "stránkou", která přijede ze strany a zase na stranu odjede. A jedna z nich je vždy zobrazená (při změně jsou to dvě).

Takže jak zařídit, aby něco při kliknutí odjelo na stranu a něco zase ze strany přijelo?
Absolutním pozicováním a měněním vlastnosti left a display. Sleduj, co se děje s atributem style nějaké položky v okamžiku změny slidu. A to budeš muset naprogramovat v JS jako událost kliknutí na položku v menu. Stačí jen změnit display nového obsahu, v nějakém intervalu měnit vlastnost left a po dokončení změnit display a přepočítat výšku.

Ale tím to nekončí. Je potřeba i zaručit správnou inicializaci stránky a odkazovatelnost. Tím myslím, že když uživatel přijde poprvé na stránku www.lochy.cz/#!/Kontakt, tak má vidět stránku s kontaktem. To musíš vyřešit odchytáváním hash části URL při onload. Dále musíš při kliknutí v menu se změnou stránky změnit i hash v URL. Dále je potřeba na serveru zajistit funkčnost _escaped_fragment_, která zajistí správné indexování webu vyhledávačem, viz stackoverflow.com/questions/3009380/whats-the-shebang-hashbang-in-facebook-and-new-twitter-urls-for. Jinak vyhledávač nejspíš uvidí jen úvodní stránku a vše ostatní bude ignorovat, protože je to skryté a není to přístupné jinak než pomocí magie v JS.

Ve výsledku to naprogramovat tak těžké není. Ale zajistit, že to bude fungovat správně dá docela zabrat. Otázkou je, zda ti to za to stojí.
Keeehi
Profil
Ještě o změně URL bez změny stránky.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0