Autor Zpráva
barneby
Profil
Dobrý den,
potřebuju nějak udělat aby když člověk přijde na mojí stránku tak aby bylo první co by viděl obsah pod ID obsah.
Ale aby se mohl třeba vyjést nahoru a tam byl další obsah.
Asi se to bude dělat nějak pomocí javascriptu, ale jak?
Děkuji.
han5vk
Profil
Zišiel by sa link na stránku, nemáme veštiacu guľu, a nevieme čo znamená „obsah pod ID obsah“ :)
Chro
Profil
Myslí automatický odkaz na kotvu #obsah (<div id="obsah">).
barneby
Profil
A šlo by to udělat nějak aby v tom odkazu nebylo #obsah
Chro
Profil
Moc nerozumím javascriptu. Googlem na frázi "javascript kotva" jsem našel
http://www.kasman.sk/location-hash
Kubo2
Profil
barneby:
Áno, ide použiť JavaScriptová metóda HTMLElement.prototype.scrollIntoView().
barneby
Profil
Funguje to, ale pořát po načtení stránky odkaz vypadá takhle index.php#kotva
Kubo2
Profil
Chro:
Googlem na frázi "javascript kotva" jsem našel [...]
barneby vyslovene nechcel, aby bol v URL zahrnutý znak # nasledovaný ídéčkom, t.j. #obsah, chcel, aby sa po načítaní stránka odrolovala niekam dolu na začiatok elementu s id="obsah" (#obsah), bez zmeny adresy.
To čo ti vypľul kamarát Google, adresu mení.

barneby:
Konkrétnejšie.
Pre zobrazenie zdroja odmaž z konca adresy pomlčku.
barneby
Profil
Přesně to chci
Kubo2
Profil
barneby:
Přesně to chci
Tak to tam máš.

window.onload = function() {
  try {
    document.getElementById('obsah').scrollIntoView();
  } catch(e) {   }
}

V bloku try-catch to musí byť, pretože metóda v niektorých browseroch nie je. To je treba ošetriť.
barneby
Profil
Super jde to, dík.
A šlo by ještě nějak udělat aby tam byla ta kotva i při reoladu stránky?
Kubo2
Profil
barneby:
Neviem presne ako to myslíš, mala by tam byť aj po reloade.
barneby
Profil
když dáš F5 tak aby se ta stránka znova zobrazila na tý kotvě.
Kubo2
Profil
barneby:
Zobrazí sa, pretože je to v udalosti window.onload. To znamená, že pri každom načítaní sa to posunie na tú kotvu.
barneby
Profil
Právě že ne
barneby
Profil
Všechno vyřešeno :)
Děkuji.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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