Autor Zpráva
Mlocik97
Profil *
Zdravím, zde som sa pýtal za ukotvenie menu:
Ukotvenie menu

a prišla mi suprová rada od Trejpa, avšak kód:
var element = document.getElementById('menu');
function pozice() {
    var posun = (window.pageYOffset || document.documentElement.scrollTop)  - (document.documentElement.clientTop || 0);
    if (posun > 150)
        {
            element.style.position = 'fixed';
            element.style.top = '0';
        }
    else
        {
            element.style.position = 'absolute';
            element.style.top = '150px';
            /* 150 px = výška záhlaví */
        }
}
window.onscroll = pozice;
funguje len pre jeden div, avšak keď chcem ukotviť menu a pritom ešte jeden stĺpec, vždy sa mi podarí ukotviť len jedno z toho, avšak nie obe zároveň, (najčastejšie mi druhé ukotvenie odkotvilo prvé)
neviete poradiť ako to spraviť?

môj kód:
github.com/Mlocik97/web

ukotvoval som divy "menu1" a "menu2" a "aside".


Mlocik97:
kód som len máličko prispôsobil ku svojmu, ovšem zmeny by nemaly súvisieť s tým že to nefunguje na viac divov. (písal som osobitne 3 súbory script.js (každý ináč nazvaný a každý mal ukotviť iný div)


Mlocik97:
to vidieť zde:

github.com/praxb4-mps/web


Mlocik97:
vlastne to chcem dosť podobne ukotviť ako sa ukotvuje to na tejto stránke:
www.w3schools.com/html/default.asp
Chamurappi
Profil
Reaguji na Mlocika97:
funguje len pre jeden div
Protože přepisuješ stále tentýž onscroll. Možná si i přepisuješ funkci pozice a proměnnou element, nevím, zda tě napadlo je přejmenovat.
Přidej i to druhé ukotvování dovnitř funkce pozice. Nebo si zaveď dvě různé funkce a do onscroll přiřaď funkci, která obě zavolá… ale v takovém případě tedy ten posun počítej jen jednou v onscrollu a předávej ho jako argument do obou těch funkcí (není nutné ho počítat dvojmo, vyšel by stejně).
Na kód na githubu jsem se nekoukal, pardon, je moc pracné se k němu proklikat… a na W3Schools jsem také nekoukal, protože bych se styděl mít tuto stránku v prohlížečové historii :-)
Mlocik97
Profil *
Chamurappi:
mám ukotvenie1 ukotvenie2 a ukotvenie3 a taktiež posun1 posun2 a posun3. Akurát tie elementy som nepremenoval.

a proměnnou element, nevím, zda tě napadlo je přejmenovat.

no to som neudelal,... (u mňa sa funkcia volá ukotvenie1,2,3) akurát ako by som mohol pomocou onscroll zavolať všetky funkce naraz? a tie elementy ako premenovať? som skušal napísať element1.style.osition = 'fixed'; ale pak to nefungovalo, v JS som začiatočník.


Mlocik97:
aj keď teoriu zväčša chápu.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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