Autor Zpráva
Mlocik97
Profil *
Zdravím, viem ako ukotviť menu keď pred ním už nič iné nieje position: fixed a Top:0) avšak neviem ako to ruboťi keď mám pred ním ešte niečo, napríklad mám hlavičku, a chcem aby menu bolo bod hlavičkou, teda 150px od horného okraja s tým že sa pri scrollovaní presunie k hornému okraju a potom sa tam ukotví.
Trejpa
Profil
Mlocik97:
Třeba skriptem reagujícím na posun stránky.

příklad - zdroj
Keeehi
Profil
Nebo nezávisle na výšce obsahu nad ním.
Fixní menu při rolování
Mlocik97
Profil *
Ďakuj Vám.
Tomášeek
Profil
Trejpa:
Ač chybu nevidím a konzole nic nehlásí, tvůj kód mi nefunguje (nezafunguje podmínka a nezmění se styl elementu) v Safari. Příčinu hledat nechci, jen upozorňuji, pokud by se tím chtěl někdo zabývat. V Chrome OK.


Doplním, že proměnná posun nabývá správných hodnot (tedy 150+), ale nepřiřazuje se styl. Asi mi (prohlížeči) vadí vložení stringu s více hodnotami, namísto klasického přístupu skrze objekt(?).
element.style.display = 'fixed';
element.style.top = 0;
// analogicky zpet

Někdo (Chamurapi) možná bude vědět více i z historie, případně verzí, kde a proč to (ne)funguje.
Trejpa
Profil
Tomášeek:
Máš pravdu, v Internet Exploreru a Edge můj kód nefungoval a jednou z příčin bylo přiřazování stylů. Opraveno, otestováno v různých prohlížečích.

příklad, zdroj
Tomášeek
Profil
Kdyby se někomu chtělo vysvětlit/najít, proč nefungoval původní Trejpův zápis, rád se poučím (přiznávám ale, že na dohledávání a listování dokumentací nemám sám čas). Docela mě to zajímá, ale pokud se nikomu chtít nebude, pochopím :-)
pcmanik
Profil
Tomášeek:
Style nieje určený na priraďovanie viacerých hodnôt naraz. Na to slúži cssText

Nastavovanie viacerých vlastností cez style spôsobí zbytočný redraw v prehliadači. Čomu by sa mal cssText alebo zmena CSS triedy vyhnúť.
Naviac písať CSS priamo do Javascriptu nieje z dôvodu udržiavania kódu dobrý nápad. Lepšie je zmeniť triedu.
Tomášeek
Profil
pcmanik:
O best-practices (měnit třídu namísto stylů) se tu bavit nechci. Na to jsem se neptal.
O užití (a existenci) .cssText se bavit rovněž nechci.

Můj dotaz byl (koukám, že jsem to napsal špatně, správně mělo být), proč někde Trejpův zápis fungoval? Konkrétně v Chromu (a možná i jinde).
Keeehi
Profil
Tomášeek:
proč někde Trejpův zápis fungoval? Konkrétně v Chromu (a možná i jinde).
To asi proto, že to tak chrome implementoval.

HTMLElement.style vrací objekt třídy CSSStyleDeclaration. A když do HTMLElement.style přiřazuješ, chtělo by to zase přiřezovat objekt třídy CSSStyleDeclaration a ne obyčejný string. Předpokládal bych, že když to v chrome funguje, tak si ten string nejdříve převede na objekt.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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