Jak uložit a nastavit pozici posuvníku?

Honza

Jak uložit a nastavit pozici posuvníku?
« kdy: 15. 03. 2017, 14:09:04 »
Ahoj, může mi prosím někdo poradit ohledně odeslání formuláře a pozicí posuvníku?
Před odesláním nějakého formuláře na stránce bych potřeboval uložit pozici posuvníku a tuto pozici opět nastavit při dalším načtení stránky. Děkuji.


Placebo

Re:Jak uložit a nastavit pozici posuvníku?
« Odpověď #1 kdy: 15. 03. 2017, 14:44:50 »
Ulozit hodnotu z
Kód: [Vybrat]
document.body.scrollTop
do cookies nebo localstorage a po znovunacteni stranky nacist tu hodnotu a prescrolovat
Kód: [Vybrat]
window.scrollTo(0, ulozenaHodnotaProScroll)

Honza

Re:Jak uložit a nastavit pozici posuvníku?
« Odpověď #2 kdy: 15. 03. 2017, 15:46:07 »
Moc děkuji, funguje to super, akorát to nastaveju při každém reloadu :-( Nešlo by nějak oštřit podmínkou v JS aby provedl nastavení jen pokud adresa splňuje shodný název a existuje $_POST? Něco jako

http://example.foo/mypage/cokoliv/atd..
Kód: [Vybrat]
if ( url == "mypage") && (isset $_POST)
//nastavuji posuvnik
else
//nedelam nic

Díky mob.

Placebo

Re:Jak uložit a nastavit pozici posuvníku?
« Odpověď #3 kdy: 15. 03. 2017, 16:26:42 »
Url lze parsovat z window.location.href, treba:
Kód: [Vybrat]
if(window.location.href.indexOf("co-hledam") > -1) {
...
} else {
...
}

na POST zapomen, to stranka nezna, jedine to co ji na serveru zopakujes v GET, tedy v url, treba jako

Kód: [Vybrat]
http://mojestranka.cz/?klic1=hodnota1&klic2=hodnota2

Re:Jak uložit a nastavit pozici posuvníku?
« Odpověď #4 kdy: 15. 03. 2017, 17:55:00 »
Pokud formulář odešleš AJAXem, neproběhle reload stránky a nemusíš vůbec scrolovat (plus to má další výhody).

Další možnost je po odeslání formuláře přesměrovat na stránku s uvedením #fragment a v html mít příslušný element. To pak funguje i bez javascriptu.